Esempio n. 1
0
set_parameter(device=device, region=region, name="taun", value=1e-8)
set_parameter(device=device, region=region, name="taup", value=1e-8)

diode_common.SetNetDoping(device=device, region=region)

print_node_values(device=device, region=region, name="NetDoping")

diode_common.InitialSolution(device, region)

# Initial DC solution
solve(type="dc",
      absolute_error=1.0,
      relative_error=1e-10,
      maximum_iterations=30)

diode_common.DriftDiffusionInitialSolution(device, region)
###
### Drift diffusion simulation at equilibrium
###
solve(type="dc",
      absolute_error=1e10,
      relative_error=1e-10,
      maximum_iterations=30)

####
#### Ramp the bias to 0.5 Volts
####
v = 0.0
while v < 0.51:
    set_parameter(device=device, name=GetContactBiasName("top"), value=v)
    solve(type="dc",
Esempio n. 2
0
device="MyDevice"
region="MyRegion"

diode_common.CreateMesh2(device, region)

diode_common.SetParameters(device=device, region=region)

diode_common.SetNetDoping(device=device, region=region)

diode_common.InitialSolution(device, region, circuit_contacts="top")

# Initial DC solution
solve(type="dc", absolute_error=1.0, relative_error=1e-12, maximum_iterations=30)


diode_common.DriftDiffusionInitialSolution(device, region, circuit_contacts=["top"])

v=0.0
while v < 0.51: 
    circuit_alter(name="V1", value=v)
    solve(type="dc", absolute_error=1e10, relative_error=1e-10, maximum_iterations=30)
    #TODO: get out circuit information
#  PrintCurrents(device, "top")
    PrintCurrents(device, "bot")
    solve(type="ac", frequency=1.0)
    cap=get_circuit_node_value(node="V1.I", solution="ssac_imag")/ (2*3.14159)
    print("capacitance {0} {1}".format(v, cap))
    v += 0.1

for x in get_circuit_node_list():
    for y in get_circuit_solution_list():