xopto / pyxopto

PyXOpto is a collection of python tools for performing Monte Carlo simulations of light propagation in turbid media.
GNU General Public License v3.0
30 stars 8 forks source link

How to simulate the larger size tissues? #8

Closed RickyKaku closed 10 months ago

RickyKaku commented 1 year ago

Hopefully this is not a stupid question: I tried to multiply the blood diameter sizes of the skin-blood model by 10 times and adjusted the depth of it correspondingly. I set the nphoton to the maximum allowed value but still get zero fluence/deposited energy at the center of blood vessel. Any good recommendations for the larger model simulations? Your help would be greatly appreciated!

xopto commented 1 year ago

Photon packets are very likely absorbed before penetrating the blood vessel. Depending on the absorption coefficient of the surrounding tissue, only a tiny fraction of photon packets might reach the blood vessel. Consequently, you would have to significantly increase the number of launched photon packets. This can be accomplished by switching to a 64-bit counter type configuration (mctypes.McDataTypesSingleCnt64) that allows launching up to 2**64 packets in a single run. You can also decrease the absorption coefficient of the tissue that surrounds the blood vessel to test the configuration with fewer photon packets. Also note that the top layer has a very high absorption coefficient (melanin) and if the thickness of this layer is scaled by a factor of 10, it will almost fully absorb the incident beam.

RickyKaku commented 1 year ago

Thank you for the suggestion and it helped me a lot! Yes, fundamentally it's due to the high absorption of blood or melanin layer and currently I have to increase the nphoton to get precise results. However, it would significantly increase the computation time cost. Is there a way to estimate the fluence results of large model based on small model (and multiplying some scale factor equations, regressions etc.)? Thank you.