Mesh-based Monte Carlo (MMC)
Monte Carlo photon migration in complex shapes using tetrahedral meshes
- Mesh-based Monte Carlo, or MMC, is a Monte Carlo (MC) solver for photon migration in 3D turbid media. Different from existing MC software designed for layered (such as MCML) or voxel-based media (such as MMC or tMCimg), MMC can represent a complex domain using a tetrahedral mesh. This not only greatly improves the accuracy of the solutions when modeling objects with smooth/complex boundaries, but also gives an efficient way to sample the problem domain to use less memory. The current version of MMC support multi-threaded programming and can give a almost proportional speed-up when using multiple CPU cores.
- MMC was developed by Qianqian Fang at the Photon Migration Lab, Martinos Center for Biomedical Imaging, Massachusetts General Hospital (Harvard Medical School).
- Details of this software can be found in the following paper:
Title
Mesh-based Monte Carlo Method Using Fast Ray-Tracing in Plücker Coordinates
Abstract
We describe a fast mesh-based Monte Carlo (MC) photon migration
algorithm for static and time-resolved imaging in 3D complex
media. Compared with previous works using voxel-based media
discretization, a mesh-based approach can be more accurate
in modeling targets with curved boundaries or locally refined
structures. We implement an efficient ray-tracing technique
using Plücker Coordinates. The Barycentric coordinates computed
from Plücker-formed ray-tracing enables us to use linear
Lagrange basis functions to model both media properties and
fluence distribution, leading to further improvement in accuracy.
The Plücker-coordinate ray-polygon intersection test can be
extended to hexahedral or high-order elements. Excellent
agreement is found when comparing mesh-based MC with the
analytical diffusion model and 3D voxel-based MC code in both
homogeneous and heterogeneous cases. Realistic time-resolved
imaging results are observed for a complex human brain anatomy
using mesh-based MC. We also include multi-threading support
in the software and will port it to a graphics processing unit
platform in the near future.
Preview