Absorption values from cylindrical fibre sources

53 views
Skip to first unread message

Alex Ranne

unread,
Jan 21, 2021, 10:42:34 AM1/21/21
to Virtual Photonics

Hi,

Hope you are doing well.

I am a researcher currently looking into simulating tissue energy and damage caused by laser catheters in the human brain. In essence, I am interested about the temperature of the brain tissue following a laser ablation process.

In my research, I experimented with your amazing Monte Carlo Simulation tool and tried to use the “Lambertian Cylindrical Fibre Source” found on your “light sources-V6” document to simulate the absorption values in my model. I also tried to use a point source model to compare the results. But I ended up getting drastically different values for the temperature.

For your reference, my cylindrical fibre source has the following parameters:

Fibre radius: 0.6, FibreHeightZ: 5.0, CurvedSurfaceEfficiency: 1.0, BottomSurfaceEfficiency:1.0, DirectionOfPrincipleSourceAxis:Ux = 0, Uy = 0, Uz = 1, no translation from origin.

And my point source is an isotropic directional point at the origin.

For my cylindrical source, after multiplying the results from the Monte Carlo Simulator by my laser power in W, my tissue volume in mm^3 and my ablation time in s, then using E = mc dT, I was able to obtain a temperature map of my tissue, but with a change in temperature of roughly 0.7 degrees C. When the same calculation was done on the isotropic point source results, I am getting temperatures differences that are much larger >100 degrees C.

So this leads to my first question: Can you explain why are the results different by such a large margin? What makes the results so different between a point and a cylindrical source?

Also, in a real world laser ablation process, this cylindrical laser catheter should be more than capable to ablate brain tissues using my prescribed parameters, with changes in temperature much greater than 0.7 degrees C. If I were to try and recreate that process under the Monte Carlo Simulator, how should I go about doing it? Perhaps I am using the cylindrical source definition incorrectly?

I look forward to your reply and recommendations.

Best,

Alex

Carole Hayakawa

unread,
Feb 2, 2021, 3:08:19 PM2/2/21
to Virtual Photonics
Dear Alex,

Thanks for your question.  We reviewed the LambertialSurfaceEmittingCylindricalSource source definition and found a bug in the code. The change is in the definition of "TranslationsFromOrigin".  This should identify the center of the fiber.  So a fiber that has FiberHeightZ=5.0 and this length is submerged in the medium, would have TranslationFromOrigin={"X":0.0,"Y":0.0,"Z":2.5}.  We have updated the documentation here:
on right hand side panel "Source Definitions" (version 7).

A couple of comments/questions regarding your definition and comparison with results using a point source at the origin.
1) In the LambertianSurfaceEmittingCylindricalFiber definition the "CurvedSurfaceEfficiency" defines the amount of light coming out the sides of the fiber.  So setting this to 1 means you have coming out throughout the side of the fiber.  Similarly setting "BottomSurfaceEfficiency" to 1 would define light coming out the bottom circle of the cylindrical fiber.  So setting both of these to 1 would be very different than a point source at the origin and I'm not surprised that the results are very different. 
2) Possibly you wanted to define CurvedSurfaceEfficiency to 0 and only have light out the bottom of the cylindrical fiber?  If so, note that this source would send light out only in the lower half space (all downwardly directed).  
3) What isotropic point source specification are you using?  Did you possibly want to embed this definition rather than have it at the origin?  Note that embedding it would also generate very different results than using the cylindrical fiber with only light coming out the bottom because the isotropic source would have light coming out in the upper half space as well as the lower half space.

Please describe more about what you'd like to model and compare and hopefully we can help with suggesting how to define the appropriate source definitions.

Best,
Carole

Carole Hayakawa

unread,
Feb 2, 2021, 5:06:59 PM2/2/21
to Virtual Photonics
I forgot to mention.  The code changes have been pushed to GitHub, however we have not created a new MCCL.zip yet and I'm not sure when our next release will occur.  In the meantime, to obtain the new code on GitHub there are directions for Windows, Linux and Mac here:
on right hand side panel under "MCCL Source Code".
Let me know if you have questions following this process.
Best,
Carole

Alex Ranne

unread,
Feb 25, 2021, 9:00:16 AM2/25/21
to Virtual Photonics
Hi Carole,

Thank you for your reply, and sorry about the late response from my end.

Sure, I'll try and explain how I am running the simulations with a bit more detail:

1) About the point source definitions: The source I am trying to model is a diffusion laser source (so with light coming out in all directions, not focused in one direction). After looking through the source catalogue, I found that the isotropic point source more suitable for my case. By "embedding", I presume you mean embedding the source within a particular tissue structure? Currently, I placed it at the origin to test the system, but I have tried encapsulating it within a specified ellipsoid volume and it works just fine. 

2) About the cylindrical source: As explained under the point source definition, I do indeed want light coming out from all surfaces, hence I set the efficiency to be 1 for both surfaces.

3) Haven't tried the new version yet, but certainly will do that over the next few days. Thank you for updating the simulator promptly.

Best,
Alex

Alex Ranne

unread,
Feb 25, 2021, 10:50:40 AM2/25/21
to Virtual Photonics
I forgot to ask one additional question.

4) I am currently looking at running multiple MC simulations with different source locations. Basically, I need to run a parameter sweep across x,y and z coordinates, rather than across mu_a, mu_s or other optical parameters. Does the VTS package currently support a parameter sweep across x, y and z, with the help of GPU parallel processing? If not, I might try to implement it myself, and in that case, do you have any suggestions on how I can get started? 

Thank you,
Alex

Carole Hayakawa

unread,
Feb 27, 2021, 8:32:23 PM2/27/21
to Virtual Photonics
Hi Alex,

1) I'm glad you found a source that works for you.
2) Okay good, you understand the parameters of the cylindrical source.  I'm still curious why you expect these results to be similar to a point source at the surface.
3) No problem.
4) Code is in place to sweep the source location.  I tried it using infile_one_layer_all_detectors.txt which specifies a point source.  I used the command (on Linux):
./mc infile=infile_one_layer_all_detectors.txt paramsweep=source_x,0.0,0.1,2
and it ran two infiles with the X location of the source at 0.0 and 0.1.  There are also "source_y" and "source_z" parameters available.  I have not tried it on all possible sources so let me know if it doesn't work for you as you expect.

You are welcome!  Thanks for your interest in our code!
Carole


Alex Ranne

unread,
Mar 4, 2021, 5:07:21 AM3/4/21
to Virtual Photonics
Hi Carole,

Thank you for your help! I will give the paramsweep a try.

Best,
Alex

Reply all
Reply to author
Forward
0 new messages