示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0


# 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)")