Sphere: Qsca vs wavelength#

Importing the package dependencies: numpy, PyMieSim

import numpy as np

from PyMieSim.experiment.scatterer import Sphere
from PyMieSim.experiment.source import Gaussian
from PyMieSim.experiment import Setup
from PyMieSim.units import nanometer, degree, watt, AU, RIU
from PyOptik import MaterialBank

Defining the source to be employed.

source = Gaussian(
    wavelength=np.linspace(400, 1000, 50) * nanometer,
    polarization=0 * degree,
    optical_power=1e-3 * watt,
    NA=0.2 * AU
)

Defining the ranging parameters for the scatterer distribution

scatterer = Sphere(
    diameter=[200] * nanometer,
    property=MaterialBank.BK7,
    medium_property=1 * RIU,
    source=source
)

Defining the experiment setup

experiment = Setup(scatterer=scatterer, source=source)
/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/PyOptik/material/base_class.py:60: UserWarning: Wavelength range goes from 400.0 nm to 1.0000000000000002 µm which is outside the allowable range of 5.0 µm to 33.333 µm µm. [Material: BK7]
  warnings.warn(

Measuring the properties

dataframe = experiment.get('Qsca', 'Qpr', scale_unit=True)

Plotting the results

dataframe.plot(x="source:wavelength")
sphere Qsca vs wavelength
<Axes: xlabel='source:wavelength', ylabel='dimensionless'>

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

Gallery generated by Sphinx-Gallery