Skip to content

Monte Carlo Simulation of SEM Signals using CUDA.

Notifications You must be signed in to change notification settings

ntpopgetdope/CudaMONSEL

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CudaMONSEL

CudaMONSEL is a full-fledged electron tracker based on first physical principles. Its primary application is to carry out Monte Carlo simulation of SEM Signals. It can be ran on CPUs using a thread pool, as well as GPUs using the CUDA framework for increased computational efficiency.

CudaMONSEL is a direct port of JMONSEL; the original Java version of the model developed by J.S. Villarrubia and Nicholas Ritchie of NIST. CudaMONSEL aims to speed up the original simulation with native code & mass produce SEM images for ML training. It also includes extra functionalities to describe the geometry of the simulation target. For example, 2D projections of the outline of shapes on an arbitrary plane.

Citing CudaMONSEL

If you use CudaMONSEL in your research, please cite with:

@misc{villarrubia2015jmonsel,
  title={Scanning electron microscope measurement of width and shape of 10 nm patterned lines using a JMONSEL-modeled library},
  author={J.S. Villarrubia et. al.},
  howpublished={\url{https://ws680.nist.gov/publication/get_pdf.cfm?pub_id=916512}},
  year={2015}
}

@misc{zeng2019cudamonsel,
  title={CudaMONSEL},
  author={Ruizi, Zeng},
  howpublished={\url{https://github.com/zengrz/CudaMONSEL/}},
  year={2019}
}

Citing Amphibian

Amphibian is an initiative to build a library of data structures and algorithms that can be used on both host and device. Can be useful when transitioning from CPU to CUDA code.

@misc{zeng2019amphibian,
  title={Amphibian},
  author={Zeng, Ruizi},
  howpublished={\url{https://github.com/zengrz/Amphibian/}},
  year={2019}
}

Project Provenance

CudaMONSEL appears to have had an interesting history, the original author took down the repo and has since posted the following response in an issue within a repository for the Amphibian dependency. Odd situation, but fortunately the repo was forked before any of this took place. Some additional insight into CudaMONSEL's original objectives and design choices can be found in the (unfortunately incomplete) whitepaper.

Alternative Simulators

Tip

The most promising replacement I have found thus far is Nebula; an open-source simulator of electron-matter interaction published by L. van Kessel and C.W. Hagen of TU Delft's ImPhys (Microscopy Instrumentation & Techniques) department. Their paper shows simulation of SE & BSE signals and importantly it remains based on first-principle physical models. If that wasn't enough to convince you it's apparently "used within ASML to obtain a better understanding of SEM signal formation" according to an old PhD position listing 👀...


Since 2019, further open-source1 C++/CUDA backed Monte Carlo simulations tailored to modeling electron scattering & secondary electron generation were published. If you happen to stumble upon this repo I'd recommend first exploring some solutions listed in the table2 below.

Name Open
Source
Bulk Layers GUI Complex
Samples
X-Ray
Spectra
Programmable
CASINO ✔️ ✔️ ✔️ ✔️ - ver. 3 ✔️ - PyPI
Win X-Ray ✔️ ✔️ ✔️ ✔️
MC X-Ray ✔️ ✔️ ✔️ ✔️ ✔️
NISTMonte ✔️ - Java ✔️ ✔️ ✔️ ✔️ ✔️
Penelope ✔️ - Fortran ✔️ ✔️ ✔️ ✔️ ✔️
LMS-MC ✔️ - Fortran ✔️ ✔️
NBSMonte ✔️ - Fortran ✔️
EFS ✔️ ✔️ ✔️
MC-SET ✔️ - C++ ✔️ ✔️ ✔️ ✔️ ✔️
MONCA2 ✔️ - Matlab ✔️ ✔️ ✔️ ✔️
MONCA ✔️ - Matlab ✔️ ✔️ ✔️
CHARIOT ✔️ ✔️ ✔️ ✔️
GEANT4 ✔️ - C++ ✔️ ✔️ ✔️ ✔️ ✔️
EISS ✔️ - Java ✔️ ✔️ ✔️
MCSEM ✔️ - C++ ✔️ ✔️ ✔️ ✔️ ✔️

Footnotes

  1. Unfortunately, without direct ties to academia some tend to be "open-source" on paper only & are quite hard to obtain.

  2. Table transcribed from Radim Skoupý's doctoral thesis on "Quantitative imaging in scanning electron microscope"

About

Monte Carlo Simulation of SEM Signals using CUDA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Cuda 95.3%
  • TeX 3.2%
  • C++ 1.4%
  • CMake 0.1%