# device = "MyDevice" region = "MyRegion" diode_common.CreateMesh(device=device, region=region) diode_common.SetParameters(device=device, region=region) 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)
circuit_element(name="V1", n1=GetContactBiasName("top"), n2=0, value=0.0, acreal=1.0, acimag=0.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)