DEVSIM is semiconductor device simulation software which uses the finite volume method. It solves partial differential equations on a mesh. The Python interface allows users to specify their own equations.

Software Features

  • Documentation

  • Python and Tcl scripting

  • DC, small-signal AC, impedance field method, transient

  • User specified partial differential equations (PDE).

  • 1D, 2D, and 3D simulation

  • 1D, 2D mesher

  • Import 3D meshes.

  • 2D cylindrical coordinate simulation

  • ASCII file format with PDE embedded.

Please see INSTALL file for installation instructions from source. Please see NOTICE and LICENSE files for copyright and license information.

Supported Platforms

  • macOS 10.13

  • Microsoft Windows

  • Red Hat 6 (Centos Compatible)


The source code and accompanying examples are provided by Devsim LLC. It is licensed under the Apache 2.0 License. A brief synopsis of this license is available here. Other files are subject to the license terms of their copyright owners.

DEVSIM is a registered trademark of DEVSIM LLC.


In addition to the examples provided with the distribution, and listed in the documentation. The following examples are also available:



PDF Version

Online HTML Version



  • Element Edge Based Discretization for TCAD Device Simulation

    J. E. Sanchez, and Q. Chen, “Element Edge Based Discretization for TCAD Device Simulation,” IEEE Transactions on Electron Devices, 2021, doi: 10.1109/TED.2021.3094776.

    Preprint available from TechRxiv, doi: 10.36227/techrxiv.14129081.

Using the Simulator

  • The Impact of Contact Position on the Retention Performance in Thin-Film Ferroelectric Transistors

    Q. Chen, D. Lin, Q. Wang, J. Yang, J. E. Sanchez, and G. Zhu, “The Impact of Contact Position on the Retention Performance in Thin-Film Ferroelectric Transistors,” Physica Status Solidi A 2100408, 2021, doi: 10.1002/pssa.202100408.

  • Designing a Simulator for an Electrically-Pumped Organic Laser Diode

    L. Hulbert, “Designing a Simulator for an Electrically-Pumped Organic Laser Diode,” Master’s Thesis, California Polytechnic State University, San Luis Obispo, CA, 2019, doi: 10.15368/theses.2019.60.

White Papers




TCAD Resources

Model Example

Solving the Poisson equation in a dielectric is:

\(\epsilon \int \nabla \psi \cdot \partial r = 0\)

which is equivalent to solving

\(\epsilon \int \vec{E} \cdot \partial \vec{s} = 0\)

In DEVSIM, the surface integral is performed by specifying an equation in the region with an edge model which is the negative gradient of the potential, \(\psi\). An example implementation is located in 1

def CreateOxidePotentialOnly(device, region, update_type="default"):
    Create electric field model in oxide
    Creates Potential solution variable if not available
  if not InNodeModelList(device, region, "Potential"):
    print "Creating Node Solution Potential"
    CreateSolution(device, region, "Potential")

  efield="(Potential@n0 - Potential@n1)*EdgeInverseLength"
  # this needs to remove derivatives w.r.t. independents
  CreateEdgeModel(device, region, "ElectricField", efield)
  CreateEdgeModelDerivatives(device, region, "ElectricField", efield, "Potential")
  CreateEdgeModel(device, region, "PotentialEdgeFlux", dfield)
  CreateEdgeModelDerivatives(device, region, "PotentialEdgeFlux", dfield, "Potential")
  equation(device=device, region=region, name="PotentialEquation", variable_name="Potential",
      edge_model="PotentialEdgeFlux", variable_update=update_type)