# Introduction¶

## Overview¶

DEVSIM is a technology computer-aided design (TCAD) software for semiconductor device simulation. While geared toward this application, it may be used where the control volume approach is appropriate for solving systems of partial-differential equations (PDE’s) on a static mesh. After introducing DEVSIM, the rest of the manual discusses the key components of the system, and instructions for their use.

DEVSIM is available from https://devsim.org. The source code is available under the terms of the Apache License Version 2.0 [ApacheSoftwareFoundation]. Examples are released under the Apache License Version 2.0 [ApacheSoftwareFoundation]. Contributions to this project are welcome in the form of bug reporting, documentation, modeling, and feature implementation.

## Goals¶

The primary goal of DEVSIM is to give the user as much flexibility and control as possible. In this regard, few models are coded into the program binary. They are implemented in human-readable scripts that can be modified if necessary.

DEVSIM has a scripting language interface (User Interface). This provides control structures and language syntax in a consistent and intuitive manner. The user is provided an environment where they can implement new models on their own. This is without requiring extensive vendor support or use of compiled programming languages.

SYMDIFF (SYMDIFF) is the symbolic expression parser used to allow the formulation of device equations in terms of models and parameters. Using symbolic differentiation, the required partial derivatives can be generated, or provided by the user. DEVSIM then assembles these equations over the mesh.

## Structures¶

Devices A device refers to a discrete structure being simulated. It is composed of the following types of objects.

Regions A region defines a portion of the device of a specific material. Each region has its own system of equations being solved.

Interfaces An interface connects two regions together. At the interfaces, equations are specified to account for how the flux in each device region crosses the region boundary.

Contacts A contact specifies the boundary conditions required for device simulation. It also specifies how terminal currents are are integrated into an external circuit.

## Equation assembly¶

Equation assembly of models is discussed in Equation and Models.

## Parameters¶

Parameters may be specified globally, or for a specific device or region. Alternatively, parameters may be based on the material type of the regions. Usage is discussed in Parameters.

## Circuits¶

Circuit boundary conditions allow multi-device simulation. They are also required for setting sources and their response for AC and noise analysis. Circuit elements, such as voltage sources, current sources, resistors, capacitors, and inductors may be specified. This is further discussed in Circuits.

## Meshing¶

Meshing is discussed in Meshing.

## Analysis¶

DEVSIM offers a range of simulation algorithms. They are discussed in more detail in Solver.

DC The DC operating point analysis is useful for performing steady-state simulation for a different bias conditions.

AC At each DC operating point, a small-signal AC analysis may be performed. An AC source is provided through a circuit and the response is then simulated. This is useful for both quasi-static capacitance simulation, as well as RF simulation.

Noise/Sensitivity Noise analysis may be used to evaluate how internal noise sources are observed in the terminal currents of the device or circuit. Using this method, it is also possible to simulate how the device response changes when device parameters are changed.

Transient DEVSIM is able to simulate the nonlinear transient behavior of devices, when the bias conditions change with time.

## Scripting interface¶

The scripting interface to DEVSIM is discussed in User Interface.

## Expression parser¶

The expression parser is discussed in SYMDIFF.

## Visualization and postprocessing¶

Visualization is discussed in Visualization.

## Installation¶

Installation is discussed in Installation.