Пример #1
0
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):
    print("topbias %f" % v)
    devsim.set_parameter(device="MyDevice1", name="topbias", value=v)
    devsim.solve(type="dc",
                 absolute_error=1,
                 relative_error=1e-9,
                 maximum_iterations=30)
    for device in devices:
        test_common.printResistorCurrent(device=device, contact="top")
        test_common.printResistorCurrent(device=device, contact="bot")
Пример #2
0
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")
    devsim.print_node_values(device=device, region=region, name="Potential")
    devsim.print_edge_values(device=device,
                             region=region,
                             name="ElectricField")
    devsim.print_edge_values(device=device,
                             region=region,
                             name="ElectronCurrent")

l = 1.0
q = 1.6e-19
n = 1.0e16
Пример #3
0
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# solid state resistor ssac
import devsim
import res1
import test_common

devsim.circuit_element(name="V1", n1="topbias", n2=0, acreal=1.0)
test_common.CreateSimpleMesh(res1.device, res1.region)
devsim.set_parameter(name="botbias", value=0.0)
res1.run_initial_bias(use_circuit_bias=True)

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.circuit_alter(name="V1", value=v)
    devsim.solve(type="dc",
                 absolute_error=1.0,
                 relative_error=1e-10,
                 maximum_iterations=30)
    for contact in res1.contacts:
        test_common.printResistorCurrent(device=res1.device, contact=contact)

for f in (0, 1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12):
    devsim.solve(type="ac", frequency=f)

for x in devsim.get_circuit_node_list():
    for y in devsim.get_circuit_solution_list():
        z = devsim.get_circuit_node_value(node=x, solution=y)
        print("%s %s %1.15e" % (x, y, z))