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",
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():