Release Notes


DEVSIM download and installation instructions are located in Installation. The following sections list bug fixes and enhancements over time. Contact information is listed in Contact.

1.0.0 (December 18, 2018)


The formatting of the PDF and online documentation has been improved. Also significant changes have been made to the way DEVSIM is called from Python.


Due to the numerous changes in the Python API, the version number has been updated to having a major revision of 1. We adopt the semantic version numbering presented at The version number can be accessed through the Python interface using the devsim.__version__ variable.

Operating Systems

The Microsoft Windows 32-bit operating system is now supported in addition to the platforms listed in Supported platforms.

Python Support

DEVSIM is now loaded as a shared library from any compatible Python interpreter. Previously, DEVSIM binaries contained an embedded Python interpreter. The following versions of Python are supported in this release

  • 2.7
  • 3.6
  • 3.7

By first setting the PYTHONPATH variable to the lib directory in the DEVSIM distribution, devsim is loaded by using

import devsim

from Python. Previous releases of devsim used the ds module, the manual will be updated to reflect the change in module name.

Many of the examples in the distribution rely on the python_packages module, which is available by using:

import devsim.python_packages

The default version of Python for use in scripts is Python 3.7. Scripts written for earlier versions of Python 3 should work. Python 2.7 is deprecated for future development.

Anaconda Python 3.7 is the recommended distribution and is available from The Intel Math Kernel Library is required for the official DEVSIM releases. These may be installed in Anaconda using the following command:

conda install mkl

On the Microsoft Windows platform, the following packages should also be installed:

conda install sqlite zlib

Some of the examples and tests also use numpy, which is available using:

conda install numpy

Please see User Interface and Installation for more information.

GMSH Support

Gmsh has announced a new version of their mesh format 4.0. DEVSIM currently supports the previous version, 2.2. To load a file from Gmsh, it is now necessary to either:

A future release of DEVSIM will provide this capability.

CGNS Support

Support for loading CGNS files is deprecated, and is no longer part of the official releases. Please see Using an external mesher for more information about importing meshes from other tools.

July 20, 2018


The documentation has a new license, which is described in Copyright. The source files are now available for download from:

Python 3 Support

Python 3 executable, devsim_py3 is now supplied in addition to standard Python 2 executable, devsim.

Element Information

The devsim.get_element_node_list() retrieves a list of nodes for every element on a region, contact, or interface.

Interface Boundary Condition

The type=hybrid option is now available for the devsim.interface_equation() command. Please see Interface equation assembly for information about boundary conditions.

Interace Equation Coupling

The name0, and name1 options are now available for the devsim.interface_equation() command. They make it possible to couple dissimilar equation names across regions.

Interface and Contact Surface Area

Contact surface area is no longer included in SurfaceArea node model. It is now placed in ContactSurfaceArea. These are listed in Table 2.

Bug Fixes

Extended Precision

The following new parameters are available:

  • extended_solver, extended precision matrix for Newton and linear Solver
  • extended_model, extended precision model evaluation
  • extended_equation, extended precision equation assembly

When compiled with 128-bit extended precision support, these options enable calculations to be performed with higher precision. Default geometric models, are also calculated with extended precision.

devsim.set_parameter(name = "extended_solver", value=True)
devsim.set_parameter(name = "extended_model", value=True)
devsim.set_parameter(name = "extended_equation", value=True)

Currently, the Linux and gcc-based Apple macOS versions have extended precision support.

May 15, 2017


  • The Ubuntu 16.04 (LTS) platform is now supported.
  • The Ubuntu 12.04 (LTS), Centos 5 (Red Hat 5 compatible) platforms are no longer supported. These platforms are no longer supported by their vendors.
  • Apple macOS compiled with flat_namespace to allow substitution of dynamically linked libraries.
  • Microsoft Windows 7 is compiled using Microsoft Visual Studio 2017.

Binary Releases

  • Releases available from
  • Centos 6 released is linked against the Intel Math Kernel Library.
  • Microsoft Windows 7 release is linked against the Intel Math Kernel Library
  • Apple macOS can optionally use the Intel Math Kernel Library.
  • Anaconda Python 2.7 is the recommended distribution.
  • Please see release notes for more information.

Bug Fixes

  • 3D element edge derivatives were not being evaluated correctly
  • 3D equation model evaluation for element edge models


  • Build scripts are provided to build on various platforms.
  • DEVSIM mesh format stores elements, instead of just nodes, for contact and interfaces
  • The devsim.create_gmsh_mesh() command can be used to create a device from a provided list of elements.

Example Availability

February 6, 2016

DEVSIM is now covered by the Apache License, Version 2.0 [ApacheSoftwareFoundation]. Please see the NOTICE and LICENSE file for more information.

November 24, 2015

Python Help

The Python interpreter now has documentation for each command, derived from the documentation in the manual. For example, help for the devsim.solve() can be found using:


Manual Updates

The manual has been updated so that commands are easier to find in the index. Every command now has a short description. Cross references have been fixed. The date has been added to the front page.

November 1, 2015

Convergence Info

The devsim.solve() now supports the info option. The solve command will then return convergence information.

Python Interpreter Changes

The way DEVSIM commands are loaded into the devsim module has been changed. It is now possible to see the full list of DEVSIM commands by typing


in the Python interpreter.

Platform Improvements and Binary Availability

Many improvements have been made in the way binaries are generated for the Linux, Apple macOS, and Microsoft Windows platforms.

For Linux (see linux.txt):

  • Create Centos 5, (Red Hat Enterprise Linux 5 compatible) build
  • Build uses Intel Math Kernel Library math libraries (community edition)
  • Build uses any compatible Python 2.7, including Anaconda
  • Build compatible with newer Linux distributions.

For Apple macOS (see macos.txt):

  • Uses the system Python 2.7 on macOS 10.10 (Yosemite)
  • Provide instructions to use Anaconda Python

For Microsoft Windows (see windows.txt):

  • Uses any compatible Python 2.7, including Anaconda
  • Build uses Intel Math Kernel Library Community Edition

Binary releases are available for these platforms at

August 10, 2015

The devsim.create_contact_from_interface() may be used to create a contact at the location of an interface. This is useful when contact boundary conditions are needed for a region connected to the interface.

July 16, 2015

The devsim.set_node_value() was not properly setting the value. This issue is now resolved.

June 7, 2015

The devsim.equation() now suppports the edge_volume_model. This makes it possible to integrate edge quantities properly so that it is integrated with respect to the volume on nodes of the edge. To set the node volumes for integration, it is necessary to define a model for the node volumes on both nodes of the edge. For example:

devsim.edge_model(device="device", region="region", name="EdgeNodeVolume",
set_parameter(name="edge_node0_volume_model", value="EdgeNodeVolume")
set_parameter(name="edge_node1_volume_model", value="EdgeNodeVolume")

For the cylindrical coordinate system in 2D, please see Cylindrical Coordinate Systems.

macOS 10.10 (Yosemite) is now supported. Regression results in the source distribution are for a 2014 Macbook Pro i7 running this operating system.

October 4, 2014

Platform Availability

The software is now supported on the Microsoft Windows. Please see Supported platforms for more information.

December 25, 2013

Binary Availability

Binary versions of the DEVSIM software are available for download from Current versions available are for

  • macOS 10.10 (Yosemite)
  • Red Hat Enterprise Linux 6
  • Ubuntu 12.04 (LTS)

Please see Installation for more information.


macOS 10.10 (Yosemite) is now supported. Support for 32 bit is no longer supported on this platform, since the operating system is only released as 64 bit.

Regression data will no longer be maintained in the source code repository for 32 bit versions of Ubuntu 12.04 (LTS) and Red Hat Enterprise Linux 6. Building and running on these platforms will still be supported.

Source code improvements

The source code has been improved to compile on macOS 10.10 (Yosemite) and to comply with C++11 language standards. Some of the structure of the project has been reorganized. These changes to the infrastructure will help to keep the program maintainable and useable into the future.

September 8, 2013


If the simulation is diverging for 5 or more iterations, the simulation stops.

Bernoulli Function Derivative Evaluation

The dBdx math function has been improved to reduce overflow.

Default Edge Model

The edge_index is now a default edge models created on a region Table 3.

August 14, 2013

SYMDIFF functions

The vec_max and vec_min functions have been added to the SYMDIFF parser (Table 9). The vec_sum function replaces sum.

Default Node Models

The coordinate_index and node_index are now part of the default node models created on a region (Table 2}).

Set Node Value

It is now possible to use the devsim.set_node_value() to set a uniform value or indexed value on a node model.

Fix Edge Average Model

Fixed issue with devsim.edge_average_model() during serialization to the DEVSIM format.

July 29, 2013

DEVSIM is open source

DEVSIM is now an open source project and is available from License information may be found in DEVSIM License. If you would like to participate in this project or need support, please contact us using the information in Contact. Installation instructions may be found in Installation.


The Tcl interpreter version of DEVSIM is now called devsim_tcl, and is located in /src/main/ of the build directory. Please see the INSTALL file for more information.

Contact Material

Contacts now require a material setting (e.g. metal). This is for informational purposes. Contact models still look up parameter values based on the region they are located.

External Meshing

Please see Using an external mesher for more information about importing meshes from other tools.

Genius Mesh Import DEVSIM can now read meshes written from Genius Device Simulator. More information about Genius is in Genius.

Gmsh Mesh Import DEVSIM reads version 2.1 and 2.2 meshes from Gmsh. Version 2.0 is no longer supported. Please see Gmsh for more information.

Math Functions

The acosh, asinh, atanh, are now available math functions. Please see Table 9.

Test directory structure

Platform specific results are stored in a hierarchical fashion.