Ejemplo n.º 1
0
def run_initial_bias(use_circuit_bias, net_doping=1e16):
    '''
    use_circuit for topbias
  '''
    test_common.SetupResistorConstants(device, region)
    test_common.SetupInitialResistorSystem(device, region, net_doping)
    test_common.SetupInitialResistorContact(device=device,
                                            contact='top',
                                            use_circuit_bias=use_circuit_bias)
    test_common.SetupInitialResistorContact(device=device, contact='bot')

    #####
    ##### Initial DC Solution
    #####
    devsim.solve(type='dc',
                 absolute_error=1.0,
                 relative_error=1e-10,
                 maximum_iterations=30)

    for name in ("Potential", "IntrinsicElectrons"):
        devsim.print_node_values(device=device, region=region, name=name)

    test_common.SetupCarrierResistorSystem(device, region)
    test_common.SetupCarrierResistorContact(device=device,
                                            contact='top',
                                            use_circuit_bias=use_circuit_bias)
    test_common.SetupCarrierResistorContact(device, contact='bot')
Ejemplo n.º 2
0
devsim.set_parameter(name="topbias", value=0.0)
devsim.set_parameter(name="botbias", value=0.0)
devsim.solve(type='dc',
             absolute_error=1.0,
             relative_error=1e-10,
             maximum_iterations=30)

for region in regions:
    for name in ("Potential", "IntrinsicElectrons"):
        devsim.print_node_values(device=device, region=region, name=name)

for region in regions:
    test_common.SetupCarrierResistorSystem(device, region)

for contact in contacts:
    test_common.SetupCarrierResistorContact(device, contact=contact)

test_common.SetupContinuousElectronsAtInterface(device, interface)

for v in (0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10):
    devsim.set_parameter(name="topbias", value=v)
    devsim.solve(type="dc",
                 absolute_error=1.0,
                 relative_error=1e-10,
                 maximum_iterations=30)

    test_common.printResistorCurrent(device=device, contact='top')
    test_common.printResistorCurrent(device=device, contact='bot')

for region in regions:
    devsim.print_node_values(device=device, region=region, name="Electrons")
Ejemplo n.º 3
0
devsim.solve(type="dc",
             absolute_error=1.0,
             relative_error=1e-14,
             maximum_iterations=30)

for device in devices:
    print(device)
    for name in ("Potential", "IntrinsicElectrons"):
        devsim.print_node_values(device=device, region=region, name=name)

for device in devices:
    test_common.SetupCarrierResistorSystem(device=device, region=region)

test_common.SetupCarrierResistorContact(device="MyDevice1",
                                        contact="top",
                                        use_circuit_bias=True,
                                        circuit_node="cnode1")
test_common.SetupCarrierResistorContact(device="MyDevice1",
                                        contact="bot",
                                        use_circuit_bias=False,
                                        circuit_node="topbias")

test_common.SetupCarrierResistorContact(device="MyDevice2",
                                        contact="top",
                                        use_circuit_bias=True,
                                        circuit_node="cnode1")
test_common.SetupCarrierResistorContact(device="MyDevice2",
                                        contact="bot",
                                        use_circuit_bias=False)

for v in (0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10):
Ejemplo n.º 4
0
devsim.solve(type="dc",
             absolute_error=1.0,
             relative_error=1e-14,
             maximum_iterations=30)

for device in devices:
    print(device)
    for name in ("Potential", "IntrinsicElectrons"):
        devsim.print_node_values(device=device, region=region, name=name)

for device in devices:
    test_common.SetupCarrierResistorSystem(device=device, region=region)

test_common.SetupCarrierResistorContact(device="MyDevice1",
                                        contact="top",
                                        use_circuit_bias=True,
                                        circuit_node="MyDevice1_top")
test_common.SetupCarrierResistorContact(device="MyDevice1",
                                        contact="bot",
                                        use_circuit_bias=True,
                                        circuit_node="MyDevice1_bot")
test_common.SetupCarrierResistorContact(device="MyDevice2",
                                        contact="top",
                                        use_circuit_bias=True,
                                        circuit_node="MyDevice2_top")
test_common.SetupCarrierResistorContact(device="MyDevice2",
                                        contact="bot",
                                        use_circuit_bias=True,
                                        circuit_node="MyDevice2_bot")

for v in (0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.10):