def run(): device = "bjt" region = "bjt" load_devices(file="bjt_dd_0.msh") bjt_params.run(device, region) netdoping.set_params(device, region) SetSiliconParameters(device, region) for c in ("base", "emitter", "collector"): #set_parameter(device=device, region=region, name=GetContactBiasName(c), value=0.0) CreateSiliconDriftDiffusionContact(device, region, c, "Jn", "Jp", True) # use first initial of each contact name circuit_element(name="V%s" % c[0], n1=GetContactBiasName(c), n2="0", value=0.0) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40)
def run(): device="bjt" region="bjt" load_devices(file="bjt_dd_0.msh") bjt_params.run(device, region) netdoping.set_params(device, region) SetSiliconParameters(device, region) for c in ("base", "emitter", "collector"): #set_parameter(device=device, region=region, name=GetContactBiasName(c), value=0.0) CreateSiliconDriftDiffusionContact(device, region, c, "Jn", "Jp", True) # use first initial of each contact name circuit_element(name="V%s" % c[0], n1=GetContactBiasName(c), n2="0", value=0.0) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40) solve(type="dc", absolute_error=1e6, relative_error=1e-1, maximum_iterations=40)
mesh_name = "bjt" import read_gmsh read_gmsh.run("bjt.msh", device, region, "Silicon", ("base", "collector", "emitter")) # read in last simulation when ready import netdoping netdoping.run(device, region) import initial_guess initial_guess.run(device, region) from physics.new_physics import * import bjt_params bjt_params.run(device, region) import setup_dd setup_dd.run(device, region) #Get the initial guess from here set_node_values(device=device, region=region, name="Electrons", init_from="IntrinsicElectrons") set_node_values(device=device, region=region, name="Holes", init_from="IntrinsicHoles") element_from_edge_model(edge_model="EField", device=device, region=region)
# read in last simulation when ready import netdoping netdoping.run(device, region) import initial_guess initial_guess.run(device, region) from physics.new_physics import * import bjt_params bjt_params.run(device, region) import setup_dd setup_dd.run(device, region) #Get the initial guess from here set_node_values(device=device, region=region, name="Electrons", init_from="IntrinsicElectrons") set_node_values(device=device, region=region, name="Holes", init_from="IntrinsicHoles") element_from_edge_model(edge_model="EField", device=device, region=region) element_model(device=device, region=region, name="Emag", equation="(EField_x^2 + EField_y^2)^(0.5)") element_from_edge_model(edge_model="Jn", device=device, region=region) element_from_edge_model(edge_model="Jp", device=device, region=region) element_model(device=device, region=region, name="Jnmag", equation="(Jn_x^2 + Jn_y^2)^(0.5)")