Hello @Juan ,
I have been trying to use the example code form gmsh_mos2d.py
to build a similar simulation for a 3D mos model and I’ve been having some trouble with it.
In order to check my results, I’ve been comparing the results from the 2D vs the 3D model and, so far, they do not match.
First of all, I used a slightly different mesh for the 2D model compared to gmsh_mos2d.msh
. The .geo file looks like this:
The 3D model follows the same idea, where a slice through the middle would match the 2D model.
With this setup there are more Physical Groups, so I’ve added the appropriate regions, interfaces(using
test_convert.py
), and contacts in gmsh_mos2d.py
. I also changed some of the numbers in gmsh_mos2d_create.py
to match the new dimensions of the model.I tried starting with keeping all the materials as Silicon except for the Oxide under the gate, as in the original file, but simplified the doping a little bit. I also changed the biases to this:
rampbias(device, "gate", -5.0, 0.5, 0.001, 20, 1e-1, 1e30, printAllCurrents)
rampbias(device, "drain", 1.0, 0.1, 0.001, 20, 1e-1, 1e30, printAllCurrents)
rampbias(device, "source", 0.5, 0.1, 0.001, 20, 1e-1, 1e30, printAllCurrents)
I compared the results using VisIt and also by looking at the results of calling PrintCurrents
through
rampbias
, which gave different results (Note: I saw in a previous discussion that there is an updated ramp.py
file, so I used this one https://github.com/devsim/devsim/blob/main/python_packages/ramp.py):
2D:
bot 0.0 -1.1165946715078126e-18 -3.886271738199074e-22 -1.1169832986816324e-18
drain 0.9999999999999999 4.50067270015629e-30 2.343283271088381e-16 2.343283271088426e-16
gate -0.5 0.0 0.0 0.0
source 0.5 -1.3474416471117283e-28 1.2170653698713034e-14 1.21706436987129e-14
3D:
bot 0.0 8.017909316301693e-24 -1.1649885648584984e-27 8.016744327736834e-24
drain 0.9999999999999999 1.3860821922210861e-34 -5.963212823507075e-20 -5.963212823507061e-20
gate -5.0 0.0 0.0 0.0
source 0.5 -3.8033789185931215e-33 -7.953646185623621e-20 -7.953646185624002e-20
I’m not too confident that I understand how some of the variables in gmsh_mos2d_create.py
are used, so I’m no sure what changes I would still need to make for the 3D model.
Do you know what I’m missing?
Also, when I display the results in VisIt, it tells me that it doesn’t have any information about the Electron and Hole Currents, despite having continuity equations at the interfaces (but the Potential works fine). The same happens when I try to display the Acceptors, Donors, Holes, and Electrons.
Do you know why this is happening?
Also, I’m not sure if this could somehow help with figuring this out, but in one your presentations named “Semiconductor Device Simulation Using DEVSIM” (2018), you had some results of the 2D MOSFET in slides 6 and 7. After running gmsh_mos2d.py
and gmsh_mos2d_kla.py
I realized that the results from running these files were not the same as the ones in the presentation. So I was curious, what were the changes in the code to get those results?
PS: I know I have a pretty large relative error right now, but I’m planning to spend more time figuring out the smallest possible error after getting everything else to work. I’m also using the same errors right now for both 2D and 3D.