Hi everyone,

I am simulating a CMOS chip(sensor thickness = 6um,Epi=5um), and I import the relevant electric field file and doping concentration file from TCAD.
In order to make the simulation more accurate, I consider setting up mobility_model and recombination_model. I was confused when setting up the recombination_model to find that any recombination_model I chose left the charge distribution in the exported “model.root” empty.

Is it because I’ve already set the parameters in TCAD so I don’t need to set them again in ALLPIX2?

Do you have any good suggestions for setting the parameters of the recombination_model?


Sounds like a very good idea to use a doping-dependent mobility model and a recombination model :slight_smile:
To use them, you do need to set them in the propagation module in Allpix Squared. The doping concentration is set in TCAD, but all the charge carrier motion calculations are done in Allpix Squared.

For simulations containing a large range of doping concentrations, it is recommended to use the masetti_canali mobility model and the srh_auger recombination model.

Now, as to why you don’t see anything when activating a recombination…
I would suggest making a linegraph (can be activated in the propagation module). That way, you can see where your charges end up.
You could also double-check the units you use in the mesh_converter, as a very high doping concentration would stop charge propagation very quickly. Remeber that the default units of the framework may not always be what you expect, so it is a good idea to always explicitly provide the unit in the configuration files.

Kind regards,

I found that I was converting [mesh_converter] the field file from TCAD with the unit “um^-3”. The script matches the unit used in the model is “cm^-3”.
That’s probably why I made a mistake.
Is there any way to solve this problem? Conversion from doping concentration files is too slow, is there a good way to deal with it?


That explains it, then! Your doping concentration is a factor of 1e12 higher than it should be, so the charge carriers probably just stop rather immediately.
I’m afraid there’s no simple solution other than re-running with the correct units. If you have it in the .INIT format, you could write a script to alter the values, but I would just re-run the mesh_converter to be sure.
If your field is very large and takes a very long time, you can (if you use a new version of Allpix Squared) use the keyword interpolate = false in the mesh converter configuration. This will switch off the interpolation between TCAD mesh point values, and just use the nearest value instead. This speeds up the generation process, at the cost of some precision (and the impact of it will depend on how fine the meshes are).

Kind regards,

I got back the distribution of doping concentration, and then set up the recombination model and mobility model. I find my carrier moving a little weird. Shouldn’t he be moving all the way to the top of the N-well? Why does it accumulate and diffuse in the substrate?

temperature = 293.15K
mobility_model = “masetti_canali”
recombination_model = “srh_auger”
integration_time = 32us
propagate_electrons = true
propagate_holes = false
output_linegraphs = true
output_plots_use_pixel_units = true
output_plots_lines_at_implants = true

That very much depends on your sensor.

Since you speak about a “substrate” I presume you have a sensor consisting of a substrate with an epitaxial layer grown on top. Int hat case the electric field in the substrate is likely zero, so they only move by diffusion. In this type of sensor you do not expect any significant contribution from charges deposited in the substrate layer but mostly from the epi.