Introduction

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 Intel (x86_64)

  • macOS 12 M1 (arm64)

  • Microsoft Windows

  • Red Hat 7 (Centos Compatible)

License

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.

Install

The recommended installation method is to use pip to download from https://pypi.org/project/devsim/. Please see the installation notes in the Documentation with the most update information in the INSTALL.md file in the installation or online here https://github.com/devsim/devsim/blob/main/INSTALL.md.

Download

  • Binaries

Archived citable releases are stored here. The recommended installation method is in Install.

Examples

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

Documentation

Manual

PDF Version

Online HTML Version

Publications

Project

  • DEVSIM: A TCAD Semiconductor Device Simulator

    Sanchez, J. E., “DEVSIM: A TCAD Semiconductor Device Simulator,” Journal of Open Source Software, 2022, doi: 10.21105/joss.03898.

  • 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

  • Analytical model for donor like Gaussian traps in organic thin-film transistor

    Q. Chen, J. E. Sanchez, D. Lin, Y. Lei, G. Zhu, “Analytical model for donor like Gaussian traps in organic thin-film transistor,” Organic Electronics, 2022 doi: 10.1016/j.orgel.2022.106464.

  • QS-Devsim

    https://github.com/CQSim/QS-Devsim

    https://github.com/CQSim/QS-Devsim/blob/master/Example/Organic%20Traps%20in%20TFT/gaussian%20traps-3%20-eng.pdf

  • Technology computer aided design based deep level transient spectra: Simulation of high-purity germanium crystals

    J. Lauwaert, “Technology computer aided design based deep level transient spectra: Simulation of high-purity germanium crystals,” Journal of Physics D: Applied Physics, 2021, doi: 10.1088/1361-6463/ac34ad.

  • 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

Presentations

Resources

DEVSIM

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")
  dfield="Permittivity*ElectricField"
  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)