Electron charge

Hi all! I’m new here. I took the code from the example, applied voltage to the gate, but the value of the electron concentration did not change (they seem to be nowhere except for the contacts). Have I done everything right?

from devsim.python_packages.simple_physics import *
from devsim.python_packages.ramp import *
from devsim import *

import mos_2d_create

device = "mymos"
silicon_regions=("gate", "bulk")
oxide_regions=("oxide",)
regions = ("gate", "bulk", "oxide")
interfaces = ("bulk_oxide", "gate_oxide")

for i in regions:
    CreateSolution(device, i, "Potential")

for i in silicon_regions:
    SetSiliconParameters(device, i, 300)
    CreateSiliconPotentialOnly(device, i)

for i in oxide_regions:
    SetOxideParameters(device, i, 300)
    CreateOxidePotentialOnly(device, i, "log_damp")

### Set up contacts
contacts = get_contact_list(device=device)
for i in contacts:
    tmp = get_region_list(device=device, contact=i)
    r = tmp[0]
    print("%s %s" % (r, i))
    CreateSiliconPotentialOnlyContact(device, r, i)
    set_parameter(device=device, name=GetContactBiasName(i), value=0.0)

for i in interfaces:
    CreateSiliconOxideInterface(device, i)

solve(type="dc", absolute_error=1.0e-13, relative_error=1e-12, maximum_iterations=30)


for i in silicon_regions:
    CreateSolution(device, i, "Electrons")
    CreateSolution(device, i, "Holes")
    set_node_values(device=device, region=i, name="Electrons", init_from="IntrinsicElectrons")
    set_node_values(device=device, region=i, name="Holes",     init_from="IntrinsicHoles")
    CreateSiliconDriftDiffusion(device, i, "mu_n", "mu_p")

for c in contacts:
    tmp = get_region_list(device=device, contact=c)
    r = tmp[0]
    CreateSiliconDriftDiffusionAtContact(device, r, c)

solve(type="dc", absolute_error=1.0e30, relative_error=1e-5, maximum_iterations=30)
write_devices(file="mos_2d_dd0.tp", type="tecplot")

rampbias(device, "gate",  3, 0.5, 0.001, 100, 1e-10, 1e30, printAllCurrents)

write_devices(file="mos_2d_dd.tp", type="tecplot")

Hi @denmais

I recommend plotting this as a logarithmic quantity. This would be done in the plotting tool. Alternatively, you can create a model, which is logarithmic in DEVSIM and plot that. Do see a field in the plot file named logElectrons?

grep -i loge testing/*
testing/mos_2d.py:    node_model(device=device, region=r, name="logElectrons", equation="log(Electrons)/log(10)")

Thanks a lot! I’m sorry for the long answer!