Sphere: Qsca vs diameter#

Importing the package dependencies: numpy, PyMieSim

import numpy as np
from TypedUnit import ureg

from PyMieSim.experiment.scatterer import Sphere
from PyMieSim.experiment.source import Gaussian

from PyMieSim.experiment import Setup
from PyOptik import Material

Material.print_available()
import PyMieSim

PyMieSim.debug_mode = True
+-----------------------+-----------------------+
| Sellmeier Materials   | Tabulated Materials   |
+=======================+=======================+
| polycarbonate         | paladium              |
+-----------------------+-----------------------+
| polystyrene           | polyetylene           |
+-----------------------+-----------------------+
| propanol              | example_tabulated     |
+-----------------------+-----------------------+
| acetone               | calcium               |
+-----------------------+-----------------------+
| flint                 | test_tabulated_file   |
+-----------------------+-----------------------+
| FK51A                 | aluminium             |
+-----------------------+-----------------------+
| argon                 | tantalum              |
+-----------------------+-----------------------+
| lithium_niobate       | pva                   |
+-----------------------+-----------------------+
| SF5                   | zinc                  |
+-----------------------+-----------------------+
| methanol              | iron                  |
+-----------------------+-----------------------+
| BK7                   | sodium                |
+-----------------------+-----------------------+
| crown                 | silver                |
+-----------------------+-----------------------+
| glycerol              | tungsten              |
+-----------------------+-----------------------+
| cellulose             | silicon               |
+-----------------------+-----------------------+
| test_sellmeier_file   | bismuth               |
+-----------------------+-----------------------+
| pvc                   | chromium              |
+-----------------------+-----------------------+
| air                   | magnesium             |
+-----------------------+-----------------------+
| SF11                  | lead                  |
+-----------------------+-----------------------+
| ZBLAN                 | titanium              |
+-----------------------+-----------------------+
| BAF10                 | vanadium              |
+-----------------------+-----------------------+
| soda_lime_glass       | rhodium               |
+-----------------------+-----------------------+
| LASF9                 | gold                  |
+-----------------------+-----------------------+
| BAK1                  | copper                |
+-----------------------+-----------------------+
| methane               | nickel                |
+-----------------------+-----------------------+
| ethane                |                       |
+-----------------------+-----------------------+
| acetylene             |                       |
+-----------------------+-----------------------+
| germanium             |                       |
+-----------------------+-----------------------+
| ethanol               |                       |
+-----------------------+-----------------------+
| SF10                  |                       |
+-----------------------+-----------------------+
| ethylene              |                       |
+-----------------------+-----------------------+
| fused_silica          |                       |
+-----------------------+-----------------------+
| polystyren            |                       |
+-----------------------+-----------------------+
| water                 |                       |
+-----------------------+-----------------------+
| example_sellmeier     |                       |
+-----------------------+-----------------------+

Defining the source to be employed.

source = Gaussian(
    wavelength=[405, 810] * ureg.nanometer,
    polarization=0 * ureg.degree,
    optical_power=1e-3 * ureg.watt,
    NA=0.2 * ureg.AU,
)

scatterer = Sphere(
    diameter=np.linspace(10, 1000, 150) * ureg.nanometer,
    medium_property=[1.33, 1.34, 1.5] * ureg.RIU,
    property=Material.polystyren,
    source=source,
)

Defining the experiment setup

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

dataframe = experiment.get("Qsca", scale_unit=True)

dataframe.plot(x="scatterer:diameter", show=True)
sphere Qsca vs diameter
/opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/PyOptik/material/base_class.py:60: UserWarning: Wavelength range goes from 405.0 nanometer to 810.0 nanometer which is outside the allowable range of 436.79999999999995 nanometer to 1.052 micrometer µm. [Material: polystyren]
  warnings.warn(

<Figure size 800x500 with 1 Axes>

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

Gallery generated by Sphinx-Gallery