Modeling core-shell spheres using 'LayeredSpheroid'

26 views
Skip to first unread message

Tanay Paul

unread,
Aug 21, 2025, 7:15:50 PMAug 21
to Smuthi
Hi all!

I have been trying to simulate core-shell spherical particles, i.e., a spherical core surrounded by a shell of another material. From a previous discussion in this group, I learned that the 'LayeredSpheroid' particle type can be used for this. However, due to limited documentation of the API, I am not completely sure whether my implementation is correct. Below is the way I set it up.

"
smuthi.particles.LayeredSpheroid(position = [rx,ry,rz],
                    layer_refractive_indices = [part_ref_ID[0], part_ref_ID[1]],
                    layer_semi_axes_c = [r, d],
                    layer_semi_axes_a = [r, d],
                    l_max = 1, m_max = 1)
"

Here, (rx, ry, rz) is the center of the sphere,
           r is the core radius,
           d is the shell thickness,
           part_ref_ID[0] is the refractive index of the core material,
           part_ref_ID[1] is the refractive index of the shell material.

My confusion arises for two reasons:
1. During the simulation, the run-time messages included the following, which I wasn't sure whether to be concerned about:
"
  Nrank input values:
  the input value of Nrank for the layer   1 is   17,
  while the estimated value of Nrank from Wiscombe's criterion is  20;
  the input value of Nrank for the layer   2 is   17,
  while the estimated value of Nrank from Wiscombe's criterion is  20;

  Nint input value:
  the input value of Nint is  100, while Nint = Ndgs * Nrankpmax,
  Ndgs = 15,20,..., and Nrankpmax =    6;
"
2. The extinction cross-section I obtain does not match the experimental value I am trying to reproduce. Similarly, the near-field plots are not as expected.

Could anyone clarify whether my usage of 'LayeredSpheroid' is correct? Am I missing some key point? Also, do I need to explicitly adjust the 'Nrank' values?

Thanks and regards,
Tanay Paul

dominik....@web.de

unread,
Aug 22, 2025, 1:27:17 AMAug 22
to tanayp...@gmail.com, smu...@googlegroups.com
Hey Tanay, 
 
I think your definition of the layer order and their radii is not correct. 
 
"
smuthi.particles.LayeredSpheroid(position = [rx,ry,rz],
                    layer_refractive_indices = [part_ref_ID[0], part_ref_ID[1]],
                    layer_semi_axes_c = [r, d],
                    layer_semi_axes_a = [r, d],
                    l_max = 1, m_max = 1)
"
Here, (rx, ry, rz) is the center of the sphere,
           r is the core radius,
           d is the shell thickness,
           part_ref_ID[0] is the refractive index of the core material,
           part_ref_ID[1] is the refractive index of the shell material.
 
 
The underlying NFMDS code that is used to compute the particle's T-matrix expects both, the refractive indices and radii, from the outer shell towards the core. Also, it expects the full radii of each layer, and not the sole layer thickness. 
According to this, I would try:
 
smuthi.particles.LayeredSpheroid(position = [rx,ry,rz],
                    layer_refractive_indices = [part_ref_ID[1], part_ref_ID[0]],
                    layer_semi_axes_c = [r+d, r],
                    layer_semi_axes_a = [r+d, r],

                    l_max = 1, m_max = 1)
 
 
Best,
Dominik
 
 
 
 
Gesendet: Freitag, 22. August 2025 um 01:15
Von: "Tanay Paul" <tanayp...@gmail.com>
Betreff: [Smuthi] Modeling core-shell spheres using 'LayeredSpheroid'
--
Smuthi project repository: https://gitlab.com/AmosEgel/smuthi
Online documentation https://smuthi.readthedocs.io/en/latest/
---
You received this message because you are subscribed to the Google Groups "Smuthi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to smuthi+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/smuthi/23691133-91d9-4d96-874f-8324d272b6b1n%40googlegroups.com.
Message has been deleted
Message has been deleted

Tanay Paul

unread,
Aug 26, 2025, 5:52:23 AMAug 26
to Smuthi
Thank you very much, Dominik. 

Is the SMUTHI documentation available only at https://smuthi.readthedocs.io/en/latest/index.html, or is there a more updated version elsewhere? If not, it would be very helpful if a more detailed documentation could be published.

Thanks again for your help.

Best regards,
Tanay.

amos...@gmail.com

unread,
Aug 26, 2025, 6:04:09 AMAug 26
to Smuthi
Hi Tanay,

the documentation is only available at the homepage that you mentioned. It seems that currently, the auto-doc of Smuthi API is broken, such that the API of Smuthi is not correctly documented online.

You can also check the function headers in the Smuthi Python source code. The API documentation is generated from these headers, so everything missing online is in the python source files.
Check for example the headers in the particles.py module to view the correct usage of the layered particle constructor.

Best regards, Amos
Message has been deleted

Tanay Paul

unread,
Aug 29, 2025, 5:58:54 AMAug 29
to Smuthi
Thanks, Amos, for clarifying this.

I regularly check the function headers in the source code and will continue to refer to them as needed. Your guidance is very helpful and much appreciated.

Best regards,
Tanay.
Reply all
Reply to author
Forward
0 new messages