PyMieSim 3.6.0__cp311-cp311-macosx_14_0_arm64.whl → 3.6.2__cp311-cp311-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
PyMieSim/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '3.6.0'
21
- __version_tuple__ = version_tuple = (3, 6, 0)
20
+ __version__ = version = '3.6.2'
21
+ __version_tuple__ = version_tuple = (3, 6, 2)
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -126,6 +126,59 @@ class BaseScatterer(units.UnitsValidation):
126
126
  """
127
127
  return self._cpp_get_fields(phi=phi, theta=theta, r=r.to_base_units().magnitude)
128
128
 
129
+ def get_s1s2_array(self, phi: numpy.ndarray) -> Tuple[numpy.ndarray, numpy.ndarray]:
130
+ """Return the S1 and S2 scattering amplitudes for arbitrary ``phi`` angles.
131
+
132
+ Parameters
133
+ ----------
134
+ phi : numpy.ndarray
135
+ Array of azimuthal angles in **radians** for which the scattering
136
+ amplitudes are computed.
137
+
138
+ Returns
139
+ -------
140
+ Tuple[numpy.ndarray, numpy.ndarray]
141
+ Arrays of ``S1`` and ``S2`` values evaluated at the supplied angles.
142
+ """
143
+
144
+ phi = numpy.atleast_1d(phi)
145
+ return self._cpp_get_s1s2(phi=phi + numpy.pi / 2)
146
+
147
+ def get_stokes_array(
148
+ self,
149
+ phi: numpy.ndarray,
150
+ theta: numpy.ndarray,
151
+ r: units.Quantity = 1 * units.meter
152
+ ) -> Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray]:
153
+ """Return the Stokes parameters for arbitrary ``phi`` and ``theta`` angles.
154
+
155
+ Parameters
156
+ ----------
157
+ phi : numpy.ndarray
158
+ Azimuthal angles in radians.
159
+ theta : numpy.ndarray
160
+ Polar angles in radians. Must be broadcastable with ``phi``.
161
+ r : units.Quantity, optional
162
+ Radial distance from the scatterer. Defaults to ``1 * meter``.
163
+
164
+ Returns
165
+ -------
166
+ Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray]
167
+ The ``I``, ``Q``, ``U`` and ``V`` Stokes parameters.
168
+ """
169
+
170
+ phi, theta = numpy.broadcast_arrays(phi, theta)
171
+
172
+ E_phi, E_theta = self.get_farfields_array(phi=phi, theta=theta, r=r)
173
+
174
+ intensity = numpy.abs(E_phi) ** 2 + numpy.abs(E_theta) ** 2
175
+ I = intensity / numpy.max(intensity)
176
+ Q = (numpy.abs(E_phi) ** 2 - numpy.abs(E_theta) ** 2) / intensity
177
+ U = (+2 * numpy.real(E_phi * E_theta.conjugate())) / intensity
178
+ V = (-2 * numpy.imag(E_phi * E_theta.conjugate())) / intensity
179
+
180
+ return I, Q, U, V
181
+
129
182
  def get_s1s2(self, sampling: int = 200, distance: units.Quantity = 1 * units.meter) -> S1S2:
130
183
  r"""
131
184
  Compute the S1 and S2 scattering amplitude functions for a spherical scatterer.
PyMieSim/units.py CHANGED
@@ -12,7 +12,7 @@ BASE_UNITS = [
12
12
  ]
13
13
 
14
14
  # Define prefixes for scaling units
15
- SCALES = ['nano', 'micro', 'milli', '', 'kilo', 'mega']
15
+ SCALES = ['nano', 'micro', 'milli', '', 'kilo', 'mega', 'giga', 'tera']
16
16
 
17
17
 
18
18
  def initialize_registry(ureg: Optional[object] = None):
lib/libZBessel.a CHANGED
Binary file
lib/lib_ZBessel.a CHANGED
Binary file
Binary file
lib/libcpp_coreshell.a CHANGED
Binary file
lib/libcpp_cylinder.a CHANGED
Binary file
lib/libcpp_sphere.a CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyMieSim
3
- Version: 3.6.0
3
+ Version: 3.6.2
4
4
  Summary: A package for light scattering computation.
5
5
  Keywords: mie,scattering,backscatter,sphere,cylinder,nanoparticle,phase function,efficiency,rayleigh,backscattering
6
6
  Author-Email: Martin Poinsinet de Sivry-Houle <martin.poinsinet.de.sivry@gmail.com>
@@ -193,7 +193,7 @@ If you use PyMieSim in academic work, please cite:
193
193
 
194
194
  Contact
195
195
  -------
196
- For questions or contributions, contact `martin.poinsinet.de.sivry@gmail.ca <mailto:martin.poinsinet.de.sivry@gmail.ca>`_.
196
+ For questions or contributions, contact `martin.poinsinet.de.sivry@gmail.com <mailto:martin.poinsinet.de.sivry@gmail.com>`_.
197
197
 
198
198
  .. |logo| image:: https://github.com/MartinPdeS/PyMieSim/raw/master/docs/images/logo.png
199
199
  :alt: PyOptik logo
@@ -1,5 +1,9 @@
1
- PyMieSim/units.py,sha256=L7Trn8rW5d5AQK1_8I-XwaHGswXklupXs5wHgWQtJNQ,4224
2
- PyMieSim/_version.py,sha256=eic-6Xs9-9wocSdGZ3Qt8lkpGHJbspTaUymbZDQfBkA,511
1
+ pymiesim-3.6.2.dist-info/RECORD,,
2
+ pymiesim-3.6.2.dist-info/WHEEL,sha256=IENW9wY17TDsb9YtMIxV0tAkLi5DnoeroR3ly0Og4ic,114
3
+ pymiesim-3.6.2.dist-info/METADATA,sha256=yoziIyxY_OA6060JK0Mg1wOMjUdiAZ3dL6VRI73wYLk,9532
4
+ pymiesim-3.6.2.dist-info/licenses/LICENSE,sha256=-QSWDJghhVqbAzChmEK86liqPX_eeQFgdwlrKTLLcIA,1088
5
+ PyMieSim/units.py,sha256=v8fSnzYU6B7qEqkhFj5P2QofFV-qHJ3I1bTixgnG1fM,4240
6
+ PyMieSim/_version.py,sha256=NBUzwa2zr8t3-TKaVeP0ZYSkB9sd6Z52RcDA5GmYxv8,511
3
7
  PyMieSim/directories.py,sha256=ohe9qvjwN0IJ7OpZHsD7LxKYGMLr4CC7xYUGgWgw-Rg,648
4
8
  PyMieSim/__init__.py,sha256=ZRdkOFRqjkVCq0qQs4DHIFnAgkdtBr19gZaq1k6bzxw,453
5
9
  PyMieSim/mesh.py,sha256=WcX_rXpWxH7WDniIqaG4rPC-pfDm4AG9ZAX-zI8GbhU,14566
@@ -14,7 +18,7 @@ PyMieSim/single/source/base.py,sha256=HKqsEVw7caNV7ev8OVNPi3zMHc4cgGuhH9s2XcgvgB
14
18
  PyMieSim/single/source/gaussian.py,sha256=vVZ7UVkhlm2KvsTOf2uVcm9rjgXISSs7sv798m9otp4,4849
15
19
  PyMieSim/single/scatterer/__init__.py,sha256=2a9o-VHfqGloCEEbfIGSjLIIzWssRCt9W72AYvU2nSg,124
16
20
  PyMieSim/single/scatterer/core_shell.py,sha256=fqhu2PooEUDo7Vnotio7_iz2stozC5i5XczP8vdOKMs,5074
17
- PyMieSim/single/scatterer/base.py,sha256=CVVI8_nSgoF_BkEN0Fb_A61YHgMnKfOiKaKbe60NsD8,19701
21
+ PyMieSim/single/scatterer/base.py,sha256=0VKnDBvStQAXO4s4A1N2IJ76wTwSV23Fjd8PQ3Di9Fo,21624
18
22
  PyMieSim/single/scatterer/sphere.py,sha256=NVBP9iUX0pAPWdi13xbMzgLfllDPCgvF5BuJuWfUUec,3847
19
23
  PyMieSim/single/scatterer/cylinder.py,sha256=GNABjAb2csnWxANlIdJW7PhuuewJHMVAlzNmlfnz7eU,4062
20
24
  PyMieSim/single/detector/uncoherent.py,sha256=DOqf5hU5ghEhj8IooC5uJX6pjMwNBveIr-FzcWkgTLk,4848
@@ -66,31 +70,27 @@ PyMieSim/experiment/detector/photodiode.py,sha256=GBSoF3mhVRyADJbEO2g4n0LffmGU7H
66
70
  PyMieSim/experiment/detector/coherent_mode.py,sha256=ME1CtxUfPY40E3HJoqJrW0ikje6QvhMY4RYs-yOvx0Q,1805
67
71
  PyMieSim/experiment/detector/__init__.py,sha256=pvtXHKR2pM7JOeTTcouKipeQwi0e8dZiZTpdAn9K2Ls,75
68
72
  PyMieSim/experiment/detector/base.py,sha256=j2yY_InLQDAPgDkM19ILlIEF-2koGMKRe9Hc-nFpyGc,7340
69
- PyMieSim/binary/interface_experiment.cpython-311-darwin.so,sha256=j-bh2Ec8tOKyVRCQwgYr5L5Xi4LWUJUFamhlT7N5vf4,491584
70
- PyMieSim/binary/libcpp_coordinates.a,sha256=h5qF6g28ZalYsmmnKOP8XRhV_VW43iZSXc9N4iN_3ho,22432
71
- PyMieSim/binary/libcpp_source.a,sha256=78h1Rz9B0E57AWKGlRDBxjFitZitPgfbmjOzWwsCTO0,6720
72
- PyMieSim/binary/interface_experiment.cpython-310-darwin.so,sha256=4fBEUHQlYLuesrGM45q23MiGDHJ2SC6D6OyuFhS1kT8,474976
73
+ PyMieSim/binary/interface_experiment.cpython-311-darwin.so,sha256=GFJkP7rOWysGz9Z5FG97aHw3lJXp4BDka-MPCHh0Pes,491584
74
+ PyMieSim/binary/libcpp_coordinates.a,sha256=bxOgP70LyHL0I89EV40sgO6VRCGKigqZ628LXoqOcME,22432
75
+ PyMieSim/binary/libcpp_source.a,sha256=BPa1NF1wx9JqeZEmW_BUCVVuLJ56NlS1-S_H-ZfQ6HU,6720
76
+ PyMieSim/binary/interface_experiment.cpython-310-darwin.so,sha256=YvN2RCpQBfmSl6Z4CbvbW3JaFCme0mXgy_A6Jr5z-eY,474976
73
77
  PyMieSim/binary/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
78
  PyMieSim/binary/interface_detector.cpython-311-darwin.so,sha256=lh_RCWgRN4R1wKI3q-tWLtC_8666eV09V3H0qafR0q8,492336
75
79
  PyMieSim/binary/interface_source.cpython-310-darwin.so,sha256=WKhrAqfJWndYN1ACTmjnD7W4qHu0OPZiE4kK7Zu-de0,240624
76
- PyMieSim/binary/libcpp_fibonacci.a,sha256=WJ1yEzb0LOtwHgDu8c59iD_iuz34TrtjylV2M7f4I7U,14160
77
- PyMieSim/binary/interface_sets.cpython-310-darwin.so,sha256=67faOdm74RVKsEq-bRptcZTtagRfYbSdRkAW9njxtJ0,579360
78
- PyMieSim/binary/libcpp_experiment.a,sha256=y1I8Bpls1wJYFuZ_QkPRt7792W9HUpWYyLRGyXk-FEQ,169792
79
- PyMieSim/binary/libcpp_mode_field.a,sha256=hh-y53-inGDf2q7xGoU83GslKCVeYdLOCX9reSb6tBw,10960
80
- PyMieSim/binary/interface_scatterer.cpython-310-darwin.so,sha256=UdqKQyH0KUkGlW1PIz891BnfDiUQ08QqHRDcDQda4MI,559936
80
+ PyMieSim/binary/libcpp_fibonacci.a,sha256=5VHKJODQokVHbzPmT2eNSI36HDE-8R6R7iyZmqrF-i4,14160
81
+ PyMieSim/binary/interface_sets.cpython-310-darwin.so,sha256=Visa5KodgbNq4SpOAZ5JD5eRz7Q1FZgXqNGyG1pEwSQ,579632
82
+ PyMieSim/binary/libcpp_experiment.a,sha256=1FosoRoIhKXPbFhGIyL_2bHHZy3d-o869krfDhZrdmk,169792
83
+ PyMieSim/binary/libcpp_mode_field.a,sha256=Xvx2-geRST93b-xtBLIeLIFHFDtj_aWQrOLKv7ZGxr4,10960
84
+ PyMieSim/binary/interface_scatterer.cpython-310-darwin.so,sha256=9jv04bzud0oVFQ0NsGN15s9kMrrzWAjTpI9blkNunJ8,560224
81
85
  PyMieSim/binary/interface_detector.cpython-310-darwin.so,sha256=Cm8QqjfgCodblQQfRTFgh9kTxYMmS-D55E_w7ND4N9o,475776
82
86
  PyMieSim/binary/interface_source.cpython-311-darwin.so,sha256=8ZwlKEMALhwE8u7vvSH_LlEpimsPcQtB8BnubLyKW0M,240624
83
- PyMieSim/binary/interface_sets.cpython-311-darwin.so,sha256=4rRbWfSR1jQ1cF328qHIfYZN1em6sJMr3pbGw9wHALo,579440
84
- PyMieSim/binary/libcpp_sets.a,sha256=S1JgIGTRXQCxwT4KYvUmusKjOxArQfON66DBDL3X1Kc,169784
85
- PyMieSim/binary/interface_scatterer.cpython-311-darwin.so,sha256=W9qVZz9zvi4cRU_GgqMMQnxsx6KhKQ5cx3IaUxynYI8,576512
86
- PyMieSim/binary/libcpp_detector.a,sha256=UR9X5AS8kX4TmApGHL0Gsa59_bgVA2c8A7npSsf96SY,197008
87
- pymiesim-3.6.0.dist-info/RECORD,,
88
- pymiesim-3.6.0.dist-info/WHEEL,sha256=IENW9wY17TDsb9YtMIxV0tAkLi5DnoeroR3ly0Og4ic,114
89
- pymiesim-3.6.0.dist-info/METADATA,sha256=NLH1cmL-XPL5EVHrCZuT_ZTIbYMT-jqEMJlNV92L1PQ,9530
90
- pymiesim-3.6.0.dist-info/licenses/LICENSE,sha256=-QSWDJghhVqbAzChmEK86liqPX_eeQFgdwlrKTLLcIA,1088
91
- lib/libcpp_cylinder.a,sha256=IUAVy88UAz00Rx07jEPCIAXh5HhCLW0c33Ihi-hPnHg,183416
92
- lib/libcpp_sphere.a,sha256=Vdj-hhZtwCR5JzRHiyTWJCnqttDKoyERRgeMLIPoGbE,194448
93
- lib/libZBessel.a,sha256=aNtM1ZZjHDuV4nBjGfMWfzvHtW1R6zm1yv-uU1MqSQk,106200
94
- lib/lib_ZBessel.a,sha256=M4zA0PHUEsYzzuIIX2f_jsQnZMYtSVTQ0AjTjgI_wtk,9840
95
- lib/libcpp_coreshell.a,sha256=I-mHxUyBGZ1LzabDai4KFdz9iOqtntMKHOev9iGE5Jk,193240
96
- lib/libcpp_base_scatterer.a,sha256=mTNfLp1LyzbL2J9v_awtA0CNBbtp87jpjTDEioU0rnE,194376
87
+ PyMieSim/binary/interface_sets.cpython-311-darwin.so,sha256=LkDJ3m4atitgTZFnorzql4C0sISSSZ8FVyEMJIDAfw0,579776
88
+ PyMieSim/binary/libcpp_sets.a,sha256=8-c9-j_8hORmxENSGfnzX4BjNG49wM3lr4XB10Au3t8,169784
89
+ PyMieSim/binary/interface_scatterer.cpython-311-darwin.so,sha256=L74jfmT-dNnZzxdoTxvdLlxALfKS5e_4A0NCYeyv7Es,576800
90
+ PyMieSim/binary/libcpp_detector.a,sha256=1i1HKUJita6C5DhzmS7BvVAEW2vLPWxINIEuLlxm_Vw,197008
91
+ lib/libcpp_cylinder.a,sha256=ST6KDa42X6jgTYUJV2VIeVO4E98UY5fWBeKiBDD5IUU,183880
92
+ lib/libcpp_sphere.a,sha256=emci7ENfOMnwu55Mntg59frFDOd0RADYyJ8ulSSE-8E,195272
93
+ lib/libZBessel.a,sha256=oEABjKFhVcYt3CIqTcQj-l0k3vuww9KDAxTurTC0Pv8,106200
94
+ lib/lib_ZBessel.a,sha256=T6bzbxj8VgN0MNkauTngFe2CyTlmtNT77agvUnOtRRw,9840
95
+ lib/libcpp_coreshell.a,sha256=jrKq7huJ3gi7SikrIFJ3SwbbpUC6zEzBB4lnJQk8PVk,194184
96
+ lib/libcpp_base_scatterer.a,sha256=KnIRZwoisfPOjljbImm4xFpHQAKS2pz24C_wyR5Qsso,194376