Skip to main content
Ctrl+K
pyMieDiff - Home pyMieDiff - Home

Mie + autodiff

Contents:

  • Examples
    • Getting started
    • Minimal optimization
    • Stability: Very large particles
    • Multilayer near-fields
    • Automatic differentiation
    • Particle optimisation
    • PyMieDiff + TorchGDM: Autodiff multi-scattering
    • PyMieDiff + TorchGDM: Optimize a Huygens lens
    • Mie-informed tandem neural network
    • Benchmark
    • Benchmark: GPU
  • API documentation
    • pymiediff.Particle
      • pymiediff.Particle.__init__
      • pymiediff.Particle.get_angular_scattering
      • pymiediff.Particle.get_cross_sections
      • pymiediff.Particle.get_material_permittivities
      • pymiediff.Particle.get_mie_coefficients
      • pymiediff.Particle.get_nearfields
      • pymiediff.Particle.set_device
    • pymiediff.multishell
      • pymiediff.multishell.angular_scattering
      • pymiediff.multishell.cross_sections
      • pymiediff.multishell.mie_coefficients
      • pymiediff.multishell.nearfields
    • pymiediff.materials
      • pymiediff.materials.MatConstant
        • pymiediff.materials.MatConstant.__init__
        • pymiediff.materials.MatConstant.get_epsilon
        • pymiediff.materials.MatConstant.plot_epsilon
        • pymiediff.materials.MatConstant.plot_refractive_index
        • pymiediff.materials.MatConstant.set_device
      • pymiediff.materials.MatDatabase
        • pymiediff.materials.MatDatabase.__init__
        • pymiediff.materials.MatDatabase.get_epsilon
        • pymiediff.materials.MatDatabase.plot_epsilon
        • pymiediff.materials.MatDatabase.plot_refractive_index
        • pymiediff.materials.MatDatabase.set_device
      • pymiediff.materials.MaterialBase
        • pymiediff.materials.MaterialBase.__init__
        • pymiediff.materials.MaterialBase.get_epsilon
        • pymiediff.materials.MaterialBase.plot_epsilon
        • pymiediff.materials.MaterialBase.plot_refractive_index
        • pymiediff.materials.MaterialBase.set_device
      • pymiediff.materials.list_available_materials
    • pymiediff.special
      • pymiediff.special.D1n_torch
      • pymiediff.special.D3n_torch
      • pymiediff.special.Ql_torch
      • pymiediff.special.bessel2ndDer
      • pymiediff.special.chi
      • pymiediff.special.chi_torch
      • pymiediff.special.f_der
      • pymiediff.special.pena_D1_n
      • pymiediff.special.pena_D3_n
      • pymiediff.special.pena_Q_n
      • pymiediff.special.pena_psi_zeta_n
      • pymiediff.special.pi_tau
      • pymiediff.special.psi
      • pymiediff.special.psi_torch
      • pymiediff.special.psi_torch_logdir
      • pymiediff.special.sph_h1n
      • pymiediff.special.sph_h1n_der
      • pymiediff.special.sph_h1n_torch
      • pymiediff.special.sph_jn
      • pymiediff.special.sph_jn_der
      • pymiediff.special.sph_jn_torch
      • pymiediff.special.sph_jn_torch_via_rec
      • pymiediff.special.sph_yn
      • pymiediff.special.sph_yn_der
      • pymiediff.special.sph_yn_torch
      • pymiediff.special.vsh
      • pymiediff.special.vsh_pena
      • pymiediff.special.xi
      • pymiediff.special.xi_torch
      • pymiediff.special.xi_torch_logdir
    • pymiediff.helper
      • pymiediff.helper.helper
        • pymiediff.helper.helper.detach_tensor
        • pymiediff.helper.helper.funct_grad_checker
        • pymiediff.helper.helper.get_truncution_criteroin_pena2009
        • pymiediff.helper.helper.get_truncution_criteroin_wiscombe
        • pymiediff.helper.helper.interp1d
        • pymiediff.helper.helper.num_center_diff
        • pymiediff.helper.helper.plane_wave_expansion
        • pymiediff.helper.helper.transform_fields_spherical_to_cartesian
        • pymiediff.helper.helper.transform_spherical_to_xyz
        • pymiediff.helper.helper.transform_xyz_to_spherical
      • pymiediff.helper.tg
        • pymiediff.helper.tg.combine_gpm_structures_autodiff
        • pymiediff.helper.tg.extract_GPM_sphere_miediff
        • pymiediff.helper.tg.mie_ab_sphere_3d_AD
        • pymiediff.helper.tg.patch_torchgdm_autodiff
        • pymiediff.helper.tg.rotation_x
        • pymiediff.helper.tg.rotation_y
        • pymiediff.helper.tg.rotation_z
        • pymiediff.helper.tg.setup_plane_waves_configs
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D
        • pymiediff.helper.tg.StructAutodiffMieGPM3D
      • pymiediff.helper.helper.get_truncution_criteroin_wiscombe
      • pymiediff.helper.helper.get_truncution_criteroin_pena2009
      • pymiediff.helper.helper.detach_tensor
      • pymiediff.helper.helper.transform_fields_spherical_to_cartesian
      • pymiediff.helper.helper.transform_spherical_to_xyz
      • pymiediff.helper.helper.transform_xyz_to_spherical
      • pymiediff.helper.helper.interp1d
      • pymiediff.helper.helper.funct_grad_checker
      • pymiediff.helper.helper.plane_wave_expansion
      • pymiediff.helper.tg.StructAutodiffMieEffPola3D
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.__init__
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.combine
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.copy
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.create_lookup
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_all_positions
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_center_of_mass
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_e0
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_e0_h0
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_e_h_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_e_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_fields_inc
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_fields_inside
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_geometric_crosssection
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_h0
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_h_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_pm
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_6x6
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_mE
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_mEH_3x6
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_mH
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_pE
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_pEH_3x6
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_pH
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_pmE_6x3
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_polarizability_pmH_6x3
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_r_pm
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_radiative_correction_prefactor_m
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_radiative_correction_prefactor_p
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_selfterm_6x6
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_selfterm_mE
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_selfterm_mH
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_selfterm_pE
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_selfterm_pH
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.get_source_validity_radius
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.interpolate_alpha
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.plot
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.plot3d
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.plot_contour
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.reset_fields
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.rotate
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.set_center_of_mass
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.set_device
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.set_fields_inside
        • pymiediff.helper.tg.StructAutodiffMieEffPola3D.translate
      • pymiediff.helper.tg.StructAutodiffMieGPM3D
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.__init__
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.combine
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.copy
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.create_lookup
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_all_positions
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_center_of_mass
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_e0
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_e0_h0
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_e_h_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_e_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_fields_inc
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_fields_inside
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_geometric_crosssection
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_gpm
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_h0
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_h_selfconsistent
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_pm
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_6x6
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_mE
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_mEH_3x6
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_mH
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_pE
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_pEH_3x6
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_pH
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_pmE_6x3
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_polarizability_pmH_6x3
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_r_pm
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_radiative_correction_prefactor_m
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_radiative_correction_prefactor_p
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_selfterm_6x6
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_selfterm_mE
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_selfterm_mH
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_selfterm_pE
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_selfterm_pH
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.get_source_validity_radius
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.interpolate_alpha
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.plot
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.plot3d
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.plot_contour
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.reset_fields
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.rotate
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.set_center_of_mass
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.set_device
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.set_fields_inside
        • pymiediff.helper.tg.StructAutodiffMieGPM3D.translate
  • .rst

Examples

Examples#

Getting started

Getting started

Minimal optimization

Minimal optimization

Stability: Very large particles

Stability: Very large particles

Multilayer near-fields

Multilayer near-fields

Automatic differentiation

Automatic differentiation

Particle optimisation

Particle optimisation

PyMieDiff + TorchGDM: Autodiff multi-scattering

PyMieDiff + TorchGDM: Autodiff multi-scattering

PyMieDiff + TorchGDM: Optimize a Huygens lens

PyMieDiff + TorchGDM: Optimize a Huygens lens

Mie-informed tandem neural network

Mie-informed tandem neural network

Benchmark

Benchmark

Benchmark: GPU

Benchmark: GPU

Download all examples in Python source code: auto_gallery_python.zip

Download all examples in Jupyter notebooks: auto_gallery_jupyter.zip

Gallery generated by Sphinx-Gallery

previous

Welcome to pyMieDiff

next

Getting started

By P. R. Wiecha, O. K. Jackson

© Copyright 2025, P. R. Wiecha.