3. Getting started

3.1. Introduction

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.

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.

3.2. Getting help

Please see Contact for project contact information. The most responsive method is to contact the online forum at https://forum.devsim.org. Additional information, with links to documentation is available at https://devsim.org. Additional documentation files released with the simulator are presented at https://pypi.org/project/devsim/.

3.3. Supported platforms

DEVSIM is compiled and tested on the platforms in Table 3.1.

Table 3.1 Current platforms for DEVSIM

Platform

Architecture

OS Version

Microsoft Windows

x64

Microsoft Windows 10

Linux

x86_64, aarch64

Red Hat Enterprise Linux 8 (AlmaLinux 8 compatible)

Apple macOS

x86_64, arm64

macOS 12.5 (Monterey)

These are the minimum supported platforms, and also expected to work on newer versions of these operating systems. If you require a version on a different software platform, please contact us Contact.

3.4. Install Python

A Python version of 3.7 or higher is needed to run DEVSIM. This requirement is often met by the default installations of the above systems. In addition, it is possible to download other Python versions online. Popular distributions of Python are listed in Table 3.2.

Table 3.2 Python distributions

Vendor

Path

Website

Anaconda

$CONDA_PREFIX

https://www.anaconda.com

Python.org

$VIRTUAL_ENV

https://python.org

3.4.1. Create virtual environment

Creating a virtual environment is needed so DEVSIM may necessary math libraries, as discussed in Default math search path. The numpy package is also recommended to ensure that needed math libraries are available.

Anaconda

Using the conda package manager in an Anaconda, a virtual environment is created using.

conda create -n denv python numpy
conda activate denv

where denv is the name of the environment. If you are using a x64 or x86_64 based system, you may install the Intel Math Kernel Library with the Pardiso Solver.

conda install mkl

Using venv

For other Python distributions, the requisite packages may be installed by using a venv based virtual environment.

python3 -mvenv denv
source denv/bin/activate
pip install numpy

where denv is the name of directory containing the environment. If you are using a x64 or x86_64 based system, you may install the Intel Math Kernel Library with the Pardiso Solver.

pip install mkl

3.5. Install DEVSIM

3.5.1. Install

DEVSIM is available from PyPI using pip. To install this package for your platform:

pip install devsim

Please see the devsim_data/INSTALL.md file in the distribution for more information. This files may be found in the prefix directory for your chosen environment listed in Table 3.2.

3.5.2. Test

To ensure a proper installation, please type the following at a Python prompt.

>>> import devsim
Searching DEVSIM_MATH_LIBS="libopenblas.dylib:liblapack.dylib:libblas.dylib"
Loading "libopenblas.dylib": ALL BLAS/LAPACK LOADED
Skipping liblapack.dylib
Skipping libblas.dylib
loading UMFPACK 5.1 as direct solver

Note that there will be an error if no math libraries are available.

>>> import devsim
Searching DEVSIM_MATH_LIBS="libopenblas.so:liblapack.so:libblas.so"
Loading "libopenblas.so": MISSING DLL
Loading "liblapack.so": MISSING DLL
Loading "libblas.so": MISSING DLL
Error loading math libraries.  Please install a suitable BLAS/LAPACK library and set DEVSIM_MATH_LIBS.  Alternatively, install the Intel MKL.
libblas.so: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/venv/lib/python3.8/site-packages/devsim/__init__.py", line 8, in <module>
    from .devsim_py3 import *
RuntimeError: Issues initializing DEVSIM.

3.5.3. Running DEVSIM

See User interface for instructions on how to invoke DEVSIM.

3.6. Building from source

Building from source is possible, and is useful when you want to extend the simulator, use compiler optimizations, or port to a new platform. See the BUILD.md file in the project files for more information.

3.7. Install external software tools

3.7.1. Meshing

Gmsh

Gmsh [2] is available from https://gmsh.info. DEVSIM is able to import triangular or tetrahedral meshes from this application. More information is in Gmsh.

Other meshers

It is also possible to import other mesh formats by writing a converter in Python, as described in Custom mesh loading using scripting.

3.7.2. Visualization

See Visualization software for a listing of available meshing tools, which are known to work with DEVSIM.

3.7.3. Math libraries

BLAS and LAPACK

These are the basic linear algebra routines used in DEVSIM and their selection is described in BLAS/LAPACK library selection.

Intel MKL Pardiso

This library may be installed and selected using the instructions in Available libraries.