Henyey-Greenstein bulk scatter model


Badge +1

I am currently modeling light scattering inside of the human skin. The known mean path for human skin is 0.1 mm. In the knowledge base article

https://support.zemax.com/hc/en-us/articles/1500005577062-Using-the-Henyey-Greenstein-distribution-to-model-bulk-scattering

 

I found that 

 

The Mean Path (mean free path) was set to 0.0001 mm, which is small relative to the 0.1 mm thickness of the volume. The measured OpticStudio values reproduce those results derived from the theoretical model within statistical error, as we would expect for a case in which each ray is only allowed to scatter once (the results will vary from ray trace to ray trace due to statistics, so you will get different – but very similar – numbers).​

 

 

I am a bit confused what mean path should I use in my model (there is very big difference in the results when using 0.1 mm and 0.0001 mm. May I get more detailed explanation how the reduction of the mean path compensates the single ray scattering approximation. I use the thickness of the volume 0.2 mm, divided in three layers with g between 0.8 and 0.9 and indexes of refraction between 1.34 and 1.5.

 


15 replies

Userlevel 1
Badge +1

Hello Elena,


the Mean Path will be the average distance in the ray will propagate in the medium before scattering. If you have your mean path set to 0.1mm you will have a chance of a scattering event happening every 0.1mm. If your object is only 0.2mm you will not have very many scatter events. If you use a mean path of 0.0001mm you will see many scattering events.


I believe the skin models should have a mean path assosiated with each skin layer. One of our engineers has been working on a skin model and I can see if it is ready to be shared if you would like to take a look at it.

Badge +1

Hello, Kaleb,


Thank you for you reply. I already switch to physical parameters. It will be very helpful and interesting to take a look at the skin model from your college.

Userlevel 5
Badge +2

Hi Elena,


Thanks for your comments here!


Please find my layered human skin model attached. It is a time-independent average skin model, where the Henyey-Greenstein DLL is used to model bulk scattering. The optical parameters of the layers are set based on the values presented in the following literature:


Monte Carlo simulation of spectral reflectance using a multilayered skin tissue model


Light Scattering Study of Tissues


In vivo fluorescence spectroscopy of the human skin: experiments and models


Effect of multi-design skin model and characteristic on monte carlo simulation of light-skin diffuse reflectance spectra


Performance of CUDA GPU in Monte Carlo simulation of light-skin diffuse reflectance spectra


I hope this helps! If you have any further questions please let us know!


Best,


Csilla

Badge +1

Thanks, Csilla!


However, my ZEMAX can not open your souce file AVAG_QSM_01_cOnSphereR1_1e6.SDF


Is this anything specific, or can I use the other source?


Best Regards,


Elena


 

Userlevel 5
Badge +2

Hi Elena,


I wanted to use this skin model to simulate a PPG-based heart rate sensor, where typically green LEDs are used as sources. So I used a LED source model with 575 nm wavelength (the optical parameters of the skin model are calibrated for 575 nm). I generated the rays from the Avago Technologies QSMF-C160 LED:



Best,


Csilla

Badge +1

Thanks!


I downloaded the file, but still can not see the source...

Userlevel 7
Badge +3

Csilla, this looks superb! Could you post the ZAR archive file so we get the source file as well please?


- Mark

Badge +1

Yes, Csilla, please (thanks, Mark). I need to use the other source anyway, because 575 nm is out of interest for my task, I need 671 nm (laser) and 800 - 950 nm (Raman) but I want to see your original file first to compare it with my current model.


Elena


 

Userlevel 5
Badge +2

Hello,


Thanks Mark!


Please find the ZAR file attached. You are right, I should have shared the archive for the first time.


Elena, please keep in mind that the optical parameters are wavelength-dependent, so you might have to re-adjust them if you would like to investigate a different wavelength range. Check out the articles I referred to in my first comment for more details.


Best,


Csilla

Badge +1

Thanks, Csilla,


Now I opened it. The reference I used for the optical parameters in the wavelength range of interest is 


Igor V Meglinski and Stephen J Matcher,


 Physiological Measurement, 2002, 23 (4): 741-753)


I also considered stratum corneum as the upper layer, which I do not see in your model. Besides, I modeled skin surface rufness and used volume detector to see scattering in depth. But I did not go as deep into the skin as it is in your model, only into dermis.


Best,


Elena


 

Userlevel 7
Badge +3

Once again, this is a great file Csilla, well done. Can we have a Knowledge Base article or webinar on it? Please? Pleeeeaaaaassssssse?


- Mark

Userlevel 5
Badge +2

Hi,


Some publications do not specifically address the stratum corneum separately, instead a thicker epidermis is considered. As my end-goal was to model a heart rate sensor, where the key is to measure the changes caused by the pulsation, and there is no blood content in the epidermis, I decided to use one thicker epidermis for this purpose, which accounts for the stratum corneum too.


Thanks for sharing your reference Elena!


Thanks Mark! While this average skin model was ready to share, I am still working on the heart rate sensor simulation. The plan is to write a knowledge base article on the whole application.


Best,


Csilla

Userlevel 5
Badge +2

Hi All,

 

I would like to let you know that the knowledgebase article on skin tissue modelling and heart rate sensor simulation using the API has been published. Please find a link to the article below: 

 

https://support.zemax.com/hc/en-us/articles/1500005579202-How-to-model-the-human-skin-and-optical-heart-rate-sensors-in-OpticStudio

 

Best,

 

Csilla

 

Userlevel 7
Badge +3

This is superb Csilla! Great job! Three comments/questions:


1. I could not get the attachment link to download anything,


2. Am I right that all the API work is to automate the time-dependent data entry and the raytracing/results gathering, but all the physics is done within OS?


3. How long did the simulations take?


- Mark 

Userlevel 5
Badge +2

Hi Mark,


Thanks for your post!

Please find my answers to your questions below:


1. Regarding article attachment, I'm sorry it was working from Microsoft Edge for me, and I didn't realize it was not working from Chrome. I updated it and now it should be working from any browsers.


2.Yes, you are correct, ZOS-API is used to automate the time-dependent parameter adjustments, to run ray traces, and to collect the results. All the physics is done within OS.


3. On my laptop with 6 cores (12 logical processors), the mentioned setup with 5 cardiac cycles, 10 time steps per cycle, and 10^5 analysis rays per time step, it takes approximately 6...7 minutes when using simple ray splitting.


Please let me know if you have any further questions, and I will be happy discuss further!


Best,


Csilla

Reply