No change in the results when modifying CreateSRH function

Hi everyone!
I want to add a parameter in CreateSRH function to simulation the Deep Level Defects. However, no matter what value I change this parameter to, the output potential and capacitance remain unchanged.
The iteration output dose change a lot when I change this parameter. If I need to add some new fator to get a different potential?

def CreateSRH(device, region):
    set_parameter(name ="R_irr", value=1e18)
    USRH="(Electrons*Holes - n_i^2)/(taup*(Electrons + n1) + taun*(Holes + p1))"
    Gn = "-ElectronCharge * (USRH+R_irr)"
    Gp = "+ElectronCharge * (USRH+R_irr)"
    CreateNodeModel(device, region, "USRH", USRH)
    CreateNodeModel(device, region, "ElectronGeneration", Gn)
    CreateNodeModel(device, region, "HoleGeneration", Gp)
    for i in ("Electrons", "Holes"):
        CreateNodeModelDerivative(device, region, "USRH", USRH, i)
        CreateNodeModelDerivative(device, region, "ElectronGeneration", Gn, i)
        CreateNodeModelDerivative(device, region, "HoleGeneration", Gp, i)

Hi @drill

Thanks for your question. I don’t know enough about your device to say what is happing. Have you plotted “USRH” to see what might be going on? It may be the rate is too low to have a meaningful effect.

Hi juan.
thanks for your reply.
I modify my code to the following form

def CreateSRH(device, region):
    USRH="(Electrons*Holes - n_i^2)/(taup*(Electrons + n1) + taun*(Holes + p1))+{}".format(r_value)
    Gn = "-ElectronCharge * USRH"
    Gp = "+ElectronCharge * USRH"

and I look the plot by tecplot, the value of USRH dose change when I change r_value, but the values of the potential keep unchanging (with 50V bias) . I want to find a way to change the SRH recombination rate in order to modify the values of the potential and electric field. if we have some way to do that?

Hi @drill

Thanks for sharing your results. I am not familiar with the model you are trying to implement, so I am asking some basic questions about the simulation.

Does your mesh have enough refinement to give a good simulation result?

Does the sign make sense for the R_irr term in both Gn and Gp? USRH is net recombination?

Since you are using such a large bias, please try adding or removing the variable_update="log_damp" option from the equation command for Potential. If you are using the python_packages, you may want to copy these files into your project and modify them directly.

Hi @Juan
Thanks for your reply! I have to apologize for my ambiguous explianation.
I want to import R_irr for the impact of deep-level defects on the recombination rate,I think the capture caused by deep-level defects will effect the value of SRH recombination, and then it will effect the carrier concentration,and it will be reflected in the value of the electric field.

Now I have a new question
I use the example of diode_2d, except I change the voltage, change two relative_error and delete IntrinsicElectrons , here are all my change:

### Drift diffusion simulation at equilibrium
solve(type="dc", absolute_error=1e10, relative_error=1e-7, maximum_iterations=1000)

#### Ramp the bias to 0.5 Volts
delete_node_model(device=device, region=region, name="IntrinsicElectrons")
delete_node_model(device=device, region=region, name="IntrinsicHoles")
v = 0.0
while v < 30:
    set_parameter(device=device, name=GetContactBiasName("top"), value=v)
    solve(type="dc", absolute_error=1e10, relative_error=1e-6, maximum_iterations=1000)
    PrintCurrents(device, "top")
    PrintCurrents(device, "bot")
    v += 1

delete_node_model(device=device, region=region, name="IntrinsicElectrons:Potential")
delete_node_model(device=device, region=region, name="IntrinsicHoles:Potential")

write_devices(file="./output/testdiode/USRH_0_dd", type="tecplot")

and I get a output with normal USRH, then I change USRH to 0 (with no meaning of physics) and get another output, I find that their value of Electrons, Holes and most of value almost have not change except value of USRH, ElectronGeneration and HoleGeneration.
If the unchange result caused by the change of relative_error? If not, I wonder if the result is reasonable because I think other value should be changed because USRH change a lot (though it haven’t physics meaning). I wonder how work about ElectronContinuityEquation and HoleContinuityEquation, because it seems this equation don’t change anything.
Here are some values’ plots


please look at the terminal currents and check the electron and hole current for different values of taun and taup.

The bandgap of silicon is only about 1.12 eV so a 30V bias does not seem physical.

also 30 V seems to be a very high number for bias, and I don’t think the effects would be physical.

Hi @Juan
Thanks for your reply!
I move back to 0.5V and change the value of taun and taup from 1e-12 to 1e3, it does have a great change with the value of the electron and hole current. It seems USRH times a big number the value of the electron and hole current also will change, I must apologize for my observation.
I have a big confuse that why the change of all this wouldn’t change the value of Electrons or Potential. I wish you can fogive me if it is a stupid question.
Thanks again for you answer my question patiently.

HI @drill

My guess is that as you increase the bias, then the quasi-neutral regions will start to be affected by the level of current flow as a high-level injection effect.

I also suggest refining the mesh if it is too coarse to capture the detail.

Hi @Juan
Thanks for your reply! But I think the porblem is that I have tried to multiply a large coefficient onto the value of USRH(in the fuction of CreateSRH from python_packages), but resulting in no observable change of the potential. Does that mean the USRH model not effect on Electrons in devsim?

Hello @drill

The USRH model controls how quickly the electrons and holes recombine into minority carriers in their respective regions. Most of its action occurs in the depletion region when there are enough electrons and holes to recombine with each other.

Hi @Juan
Thanks for your reply!
Now I add the 100V reverse bias and the region is fully depleted. Then I tried to add and multiply a large number onto the value of USRH, but the value of Electrons and Holes still unchange.

Hi @Juan
Is it possible to control the potential and the depletion region merely by changing the recombination rate in devsim? Our core requirement is to simulate a system with heavy irradiation, which corresponds to highly densed defects, and we want to reproduce the HPTM model in this article: A new model for the TCAD simulation of the silicon damage by high fluence proton irradiation | IEEE Conference Publication | IEEE Xplore , the potential of the device under test of which is determined by the irradiation dose, which is believed to be proportional to the defect density.

Hi @drill

I can take a look at the paper if you email it to

Please note that the basic models in devsim may be missing some effects that would need to be added.

Does this reference help? "Neutron Spectral Effect on Microelectronic Performance Response" by Wade Kloppenburg The thesis appears to include some devsim code, but I haven’t looked at it closely.



Thanks for the paper. It looks like they are using the Synopsys TCAD simulator. It looks like they have a few models, which would need to be implemented in DEVSIM to get a comparable result.

Impact Ionization
Hurkx (trap assisted tunneling)

it looks like this group has implemented Hurkx in devsim