Esempio 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')
Esempio n. 2
0
device = 'MyDevice'
regions = ('MySi1', 'MySi2')
interface = 'MyInt'
contacts = ('top', 'bot')

test_common.CreateSimpleMeshWithInterface(device=device,
                                          region0=regions[0],
                                          region1=regions[1],
                                          interface=interface)

for region in regions:
    test_common.SetupResistorConstants(device, region)
    test_common.SetupInitialResistorSystem(device, region, net_doping=1e16)

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

test_common.SetupContinuousPotentialAtInterface(device, interface)

#####
##### Initial DC Solution
#####
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"):
Esempio n. 3
0
test_common.CreateSimpleMesh(device=devices[0], region=region)
devsim.create_device(mesh="dog", device=devices[1])

for device in devices:
    test_common.SetupResistorConstants(device=device, region="")
    test_common.SetupInitialResistorSystem(device, region)

devsim.add_circuit_node(name="cnode1", variable_update="log_damp")
devsim.circuit_element(name="R1", n1="cnode1", n2=0, value=1e15)

# ground these contacts
devsim.set_parameter(device="MyDevice1", name="topbias", value=0.0)
devsim.set_parameter(device="MyDevice2", name="botbias", value=0.0)

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

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

devsim.solve(type="dc",
Esempio n. 4
0
#### Meshing
####
test_common.CreateSimpleMesh(device=devices[0], region=region)
devsim.create_device(mesh="dog", device=devices[1])

for device in devices:
    test_common.SetupResistorConstants(device=device, region="")
    test_common.SetupInitialResistorSystem(device, region)

devsim.add_circuit_node(name="cnode0", variable_update="default")
devsim.add_circuit_node(name="cnode1", variable_update="default")
devsim.circuit_element(name="R1", n1="cnode1", n2=0, value=1e15)
devsim.circuit_element(name="V1", n1="cnode0", n2=0, value=0.0)

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

devsim.circuit_node_alias(node="cnode0", alias="MyDevice1_top")