devsim

TCAD Semiconductor Device Simulator

APACHE-2.0 License

Downloads
7.4K
Stars
156
Committers
7

Bot releases are visible (Hide)

devsim - v2.3.1

Published by tcaduser almost 2 years ago

DEVSIM

https://devsim.org
Version: v2.3.1

Id OS Arch
devsim_linux_v2.3.1 Linux x86_64 (64 bit)
devsim_macos_v2.3.1 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v2.3.1 Microsoft Windows 10 x64 (64 bit)

Version 2.3.1

Python PIP Package

DEVSIM is now available on pypi for macOS, Linux, and Microsoft Windows. To install this package for your platform:

pip install devsim

Users of Anaconda Python should install the Intel MKL using

conda install mkl

and may find simulation files and documentation in $CONDA_PREFIX/devsim_data.

Users of other Python distributions may install this dependency using:

pip install mkl

and may find simulation files and documentation in $VIRTUAL_ENV/devsim_data when using virtual environments.

Remove Windows MSYS Build

The MSYS build is removed as an available binary package. Windows is still supported through the use of the Visual C++ compiler.

Build Notes

The compiler for the Linux build are now upgraded to devtoolset-10 and is now built on manylinux2014.

Boost is now added as a submodule, instead of using system libraries or Anaconda Python versions. The Linux build no longer requires Anaconda Python.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v2.3.0-rc3

Published by tcaduser almost 2 years ago

devsim - v2.3.0-rc2

Published by tcaduser almost 2 years ago

devsim - vbdist6

Published by tcaduser about 2 years ago

devsim - v2.2.0

Published by tcaduser about 2 years ago

DEVSIM

https://devsim.org
Version: v2.2.0

Id OS Arch
devsim_linux_v2.2.0 Linux x86_64 (64 bit)
devsim_macos_v2.2.0 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v2.2.0 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v2.2.0 Microsoft Windows 10 x64 (64 bit)

Version 2.2.0

It is possible to delete devices using the delete_device command. Meshes used to instantiate devices may be deleted using the delete_mesh command. Parameters set on a device and its regions are also cleared from the parameter database.

Extended precision is now available on Windows builds using the Visual Studio Compiler. Note that this precision is not as accurate as the float128 type used on other systems.

Upgraded to SuperLU 5.3 from SuperLU 4.3.

Fixed defects found in Coverity scanning.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v2.1.0

Published by tcaduser over 2 years ago

DEVSIM

https://devsim.org
Version: v2.1.0

Id OS Arch
devsim_linux_v2.1.0 Linux x86_64 (64 bit)
devsim_macos_v2.1.0 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v2.1.0 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v2.1.0 Microsoft Windows 10 x64 (64 bit)

Version 2.1.0

Explicit math library loading

Introduction

Since the Intel Math Kernel Library started versioning the names of their dynamic link libraries, it has been difficult to maintain a proper Anaconda Python environment when the version has been updated. With this release, it is possible to use any recent version of the Intel MKL. In addition, the user is able to load alternative BLAS/LAPACK math libraries.

Intel MKL

From DEVSIM Version 2.1.0 onward, a specific version is not required when loading the Intel MKL. If the Intel MKL is not found, the import of the devsim module will fail, and an error message will be printed. This method is the default, and should work when using an Anaconda Python environment with the mkl package installed.

When using a different Python distribution, or having an installation in a different place, it is possible to specify the location by modifying the LD_LIBRARY_PATH environment variable on Linux, or using DYLD_LIBRARY_PATH on macOS. The explicit path may be set to the MKL math libraries may be set using the method in the next section.

Loading other math libraries

It is possible to load alternative implementations of the BLAS/LAPACK used by the software. The DEVSIM_MATH_LIBS environment variable may be used to set a : separated list of libraries. These names may be based on relative or absolute paths. The program will load the libraries in order, and stop when all of the necessary math symbols are supplied. If symbols for the Intel MKL are detected, then the Pardiso direct solver will be enabled.

New CMAKE build option

For those building the software, the EXPLICIT_MATH_LOAD CMAKE option has been added to control the new explicit math loading feature. An important benefit of this option is that it is possible to build a release version of the software, even if the Intel MKL has not been installed on the build computer.

Direct solver selection

The direct solver may be selected by using the direct_solver parameter.

devsim.set_parameter(name='direct_solver', value='mkl_pardiso')

The following options are available:

  • mkl_pardiso Intel MKL Pardiso
  • superlu SuperLU 4.3

The default is mkl_pardiso when the Intel MKL is loaded. Otherwise, the default will switch to superlu.

Kahan summation in extended precision mode

The kahan3 and kahan4 functions are now using the Kahan summation algorithm for extended precision model evaluation. Previously, this algorithm was replaced with 128-bit floating point addition and subtraction in releases that support extended precision mode. With this change, better than 128-bit floating precision is available when extended precision is enabled.

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

The testing/kahan_float128.py test has been added.

Visual Studio 2022

The Microsoft Windowswin64 release version is now built using the Visual Studio 2022 compiler. For users needing extended precision on the Windows platform, the msys build is recommended.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v2.0.1

Published by tcaduser over 2 years ago

DEVSIM

https://devsim.org
Version: v2.0.1

Id OS Arch
devsim_linux_v2.0.1 Linux x86_64 (64 bit)
devsim_macos_v2.0.1 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v2.0.1 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v2.0.1 Microsoft Windows 10 x64 (64 bit)

Version 2.0.1

Update documentation files

The following files were updated in the text documentation distributed with the software.

  • CONTRIBUTING.md
  • INSTALL.md
  • README.md

Update MKL Version

The release version of this software is build against version 2 of the Intel MKL, which corresponds to the latest version of Anaconda Python. If you have issues running DEVSIM with this new version, please contact us at https://forum.devsim.org for assistance.

Update SYMDIFF reference

The submodule reference to SYMDIFF was updated due some changes to its build files. Some SYMDIFF build scripts in the DEVSIM repository were also updated.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v2.0.0

Published by tcaduser almost 3 years ago

DEVSIM

https://devsim.org
Version: v2.0.0

Id OS Arch
devsim_linux_v2.0.0 Linux x86_64 (64 bit)
devsim_macos_v2.0.0 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v2.0.0 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v2.0.0 Microsoft Windows 10 x64 (64 bit)

Version 2.0.0

Versioned MKL DLL in release build

The Intel Math Kernel Library now uses versioned library names. Binary releases are now updated against the latest versioned dll names from MKL available in the Anaconda Python distribution.

Fixed issue in ramp function.

The rampbias function in the devsim.python_packages.ramp module has been fixed to properly reduce the bias when there is a convergence failure.

Transient Simulation

Fixed bug with transient_tr (trapezoidal) time integration method where the wrong sign was used to integrate previous time steps.

Fixed bug in the charge error calculation, which calculates the simulation result with that a forward difference projection.

Added testing/transient_rc.py test which compares simulation with analytic result for RC circuit.

Added set_initial_condition command to provide initial transient conditions based on current solution.

Create interface from node pairs

Added create_interface_from_nodes to make it possible to add interface from non-coincident pairs of nodes.

Solver

Convergence Tests

The maximum_error and maximum_divergence options where added to the solve command. If the absolute error of any iteration goes above maximum_error, the simulation stops with a convergence failure. The maximum_divergence is the maximum number of iterations that the simulator error may increase before stopping.

Verbosity

During the solve, circuit node and circuit solution information is no longer printed to the screen for the default verbosity level. In addition, the number of equations per device and region is no longer displayed at the start of the first iteration.

SuperLU

The code now supports newer versions of SuperLU. The release version is still using SuperLU 4.3 for the iterative solution method, and the Intel MKL Pardiso for the direct solve method.

Simulation Matrix

The get_matrix_and_rhs command was not properly accepting the format parameter, and was always returning the same type.

Build Scripts

The build scripts have been updated on all platforms to be less dependent on specific Python 3 versions.

An updated fedora build script has been added. It uses the system installed SuperLU as the direct solver.

Documentation Files

Some out of date files (e.g. RELEASE, INSTALL, . . .) have been removed. The README.md has been updated and the INSTALL.md have been updated.

Command Options

The variable_name option is no longer recognized for the devsim.contact_equation and devsim.interface_equation as it was not being used.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Notes are available in these files:

  • linux.txt
  • windows.txt
  • macos.txt

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v1.7.0+rc4

Published by tcaduser almost 3 years ago

devsim - v1.6.0

Published by tcaduser over 3 years ago

DEVSIM

https://devsim.org
Version: v1.6.0

Id OS Arch
devsim_linux_v1.6.0 Linux x86_64 (64 bit)
devsim_macos_v1.6.0 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v1.6.0 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v1.6.0 Microsoft Windows 10 x64 (64 bit)

Version 1.6.0

Array Type Input and Output

In most circumstances, the software now returns numerical data using the Python array class. This is more efficient than using standard lists, as it encapsulates a contiguous block of memory. More information about this class can be found at https://docs.python.org/3/library/array.html. The representation can be easily converted to lists and numpy arrays for efficient manipulation.

When accepting user input involving lists of homogenous data, such as set_node_values the user may enter data using either a list, string of bytes, or the array class. It may also be used to input numpy arrays or any other class with a tobytes method.

Get Matrix and RHS for External Use

The get_matrix_and_rhs command has been added to assemble the static and dynamic matrices, as well as their right hand sides, based on the current state of the device being simulated. The format option is used to specify the sparse matrix format, which may be either in the compressed column or compressed row formats, csc or csr.

Maximum Divergence Count

If the Newton iteration errors keep increasing for 20 iterations in a row, then the simulator stops. This limit was previously 5.

Mesh Visualization Element Orientation

Elements written to the tecplot format in 2d and 3d have node orderings compatible with the element connectivity in visualization formats. Specifying the reorder=True option in get_element_node_list will result in node ordering compatible with meshing and visualization software.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Notes are available in these files:

  • linux.txt
  • windows.txt
  • macos.txt

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v1.6.0-rc4

Published by tcaduser over 3 years ago

Version 1.6.0-rc4

Array Type Input and Output

In most circumstances, the software now returns numerical data using the Python array class. This is more efficient than using standard lists, as it encapsulates a contiguous block of memory. More information about this class can be found at https://docs.python.org/3/library/array.html. The representation can be easily converted to lists and numpy arrays for efficient manipulation.

When accepting user input involving lists of homogenous data, such as set_node_values the user may enter data using either a list, string of bytes, or the array class. It may also be used to input numpy arrays or any other class with a tobytes method.

Get Matrix and RHS for External Use

The get_matrix_and_rhs command has been added to assemble the static and dynamic matrices, as well as their right hand sides, based on the current state of the device being simulated. The format option is used to specify the sparse matrix format, which may be either in the compressed column or compressed row formats, csc or csr.

Max Divergence Count

If the Newton iteration errors keep increasing for 20 iterations in a row, then the simulator stops. This limit was previously 5.

devsim - v1.5.1

Published by tcaduser over 3 years ago

DEVSIM

https://devsim.org
Version: v1.5.1

Id OS Arch
devsim_linux_v1.5.1 Linux x86_64 (64 bit)
devsim_macos_v1.5.1 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v1.5.1 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v1.5.1 Microsoft Windows 10 x64 (64 bit)

Version 1.5.1

Math Functions

The following inverse functions and their derivatives are now available in the model interpreter.

  • erf_inv Inverse Error Function
  • erfc_inv Inverse Complimentary Error Function
  • derf_invdx Derivative of Inverse Error Function
  • derfc_invdx Derivative of Complimentary Inverse Error Function

The Gauss-Fermi Integral, using Paasch's equations are now implemented.

  • gfi Gauss-Fermi Integral
  • dgfidx Derivative of Gauss-Fermi Integral
  • igfi Inverse Gauss-Fermi Integral
  • digfidx Derivative of Inverse Gauss-Fermi Integral

Each of these functions take two arguments, zeta and s. The derivatives with respect to the first argument are provided. Please see testing/GaussFermi.py for an example.

In extended precision mode, the following functions are now evaluated with full extended precision.

  • Fermi
  • dFermidx
  • InvFermi
  • dInvFermidx

The following double precision tests:

  • testing/Fermi1.py Fermi Integral Test
  • testing/GaussFermi.py Gauss Fermi Integral Test

Have extended precision variants:

  • testing/Fermi1_float128.py
  • testing/GaussFermi_float128.py

Installation Script

A new installation script is in the base directory of the package.
It provides instructions of completing the installation to the python environment without having to set the PYTHONPATH environment variable.
It notifies the user of missing components to finish the installation within an Anaconda or Miniconda environment.

To use the script, use the following command inside of the devsim directory.

    python install.py

The install script will write a file named lib/setup.py, which can be used to complete the installation using pip. The script provides instructions for the installation and deinstallation of devsim.

    INFO: Writing setup.py
    INFO:
    INFO: Please type the following command to install devsim:
    INFO: pip install -e lib
    INFO:
    INFO: To remove the file, type:
    INFO: pip uninstall devsim

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Notes are available in these files:

  • linux.txt
  • windows.txt
  • macos.txt

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v1.5.1-rc6

Published by tcaduser over 3 years ago

devsim - v1.5.1-rc5

Published by tcaduser over 3 years ago

Version 1.5.1-rc5

Math Functions

The following inverse functions and their derivatives are now available in the model interpreter.

  • erf_inv Inverse Error Function
  • erfc_inv Inverse Complimentary Error Function
  • derf_invdx Derivative of Inverse Error Function
  • derfc_invdx Derivative of Complimentary Inverse Error Function

The Gauss-Fermi Integral, using Paasch's equations are now implemented.

  • gfi Gauss-Fermi Integral
  • dgfidx Derivative of Gauss-Fermi Integral
  • igfi Inverse Gauss-Fermi Integral
  • digfidx Derivative of Inverse Gauss-Fermi Integral

Each of these functions take two arguments, zeta and s. The derivatives with respect to the first argument are provided. Please see testing/GaussFermi.py for an example.

In extended precision mode, the following functions are now evaluated with full extended precision.

  • Fermi
  • dFermidx
  • InvFermi
  • dInvFermidx

The following double precision tests:

  • testing/Fermi1.py Fermi Integral Test
  • testing/GaussFermi.py Gauss Fermi Integral Test

Have extended precision variants:

  • testing/Fermi1_float128.py
  • testing/GaussFermi_float128.py

Installation Script

A new installation script is in the base directory of the package.
It provides instructions of completing the installation to the python environment without having to set the PYTHONPATH environment variable.
It notifies the user of missing components to finish the installation within an Anaconda or Miniconda environment.

To use the script, use the following command inside of the devsim directory.

    python install.py

The install script will write a file named lib/setup.py, which can be used to complete the installation using pip. The script provides instructions for the installation and deinstallation of devsim.

    INFO: Writing setup.py
    INFO:
    INFO: Please type the following command to install devsim:
    INFO: pip install -e lib
    INFO:
    INFO: To remove the file, type:
    INFO: pip uninstall devsim
devsim - v1.5.1-rc3

Published by tcaduser over 3 years ago

Version 1.5.1-rc3

This is a release candidate for Version 1.5.1. Some features may be added and others may be subject to change before the final release.

Installation Script

A new installation script is in the base directory of the package.
It provides instructions of completing the installation to the python environment without having to set the PYTHONPATH environment variable.
It notifies the user of missing components to finish the installation within an Anaconda or Miniconda environment.

To use the script, use the following command inside of the devsim directory.

    python install.py

The install script will write a file named lib/setup.py, which can be used to complete the installation using pip. The script provides instructions for the installation and deinstallation of devsim.

    INFO: Writing setup.py
    INFO:
    INFO: Please type the following command to install devsim:
    INFO: pip install -e lib
    INFO:
    INFO: To remove the file, type:
    INFO: pip uninstall devsim

Math Functions

The following inverse functions and their derivatives are now available in the model interpreter.

  • erf_inv
  • erfc_inv
  • derf_invdx
  • derfc_invdx
devsim - v1.5.1-rc1

Published by tcaduser over 3 years ago

devsim - v1.5.0

Published by tcaduser over 3 years ago

DEVSIM

https://devsim.org
Version: v1.5.0

Id OS Arch
devsim_linux_v1.5.0 Linux x86_64 (64 bit)
devsim_macos_v1.5.0 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v1.5.0 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v1.5.0 Microsoft Windows 10 x64 (64 bit)

Version 1.5.0

The custom_equation command has been modified to require a third return value. This boolean value denotes whether the matrix entries should be row permutated or not. For the bulk equations this value should be True. For interface and contact boundary conditions, this value should be False.

It is now possible to replace an existing custom_equation.

The file examples/diode/diode_1d_custom.py demonstrates custom matrix assembly and can be directly compared to examples/diode/diode_1d.py.

The EdgeNodeVolume model is now available for the volume contained by an edge.

The contact_equation command now accepts 3 additional arguments.

  • edge_volume_model
  • volume_node0_model
  • volume_node1_model

These options provide the ability to do volume integration on contact nodes.

The equation command has replaced the volume_model option with:

  • volume_node0_model
  • volume_node1_model

so that nodal quantities can be more localized.

More details are in the manual.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Notes are available in these files:

  • linux.txt
  • windows.txt
  • macos.txt

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://anaconda.com.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy
devsim - v1.5.0-rc2

Published by tcaduser almost 4 years ago

devsim - v1.5.0-rc1

Published by tcaduser almost 4 years ago

devsim - v1.4.14

Published by tcaduser almost 4 years ago

DEVSIM

https://devsim.org
Version: v1.4.14

Id OS Arch
devsim_linux_v1.4.14 Linux x86_64 (64 bit)
devsim_macos_v1.4.14 macOS High Sierra, Mojave x86_64 (64 bit)
devsim_win64_v1.4.14 Microsoft Windows 10 x64 (64 bit)
devsim_msys_v1.4.14 Microsoft Windows 10 x64 (64 bit)

Version 1.4.14

Platforms

Windows 32 bit is no longer supported. Binary releases of the Visual Studio 2019 MSYS2/Mingw-w64 64-bit builds are still available online.

On Linux, the releases are now on Centos 7, as Centos 6 has reached its end of life on November 30, 2020.

C++ Standard

The C++ standard has been raised to C++17.

Platforms:

  • Centos 7 (Linux compatible)
  • macOS 10.13
  • Microsoft Windows 10 (64 bit)

Notes are available in these files:

  • linux.txt
  • windows.txt
  • macos.txt

Packages required

This software requires a working installation of Python 3 (3.6 or higher).

For macOS, Linux, and Microsoft Windows, the recommended distributions are the following.

Anaconda contains many scientific software packages and is available from:
https://continuum.io/downloads.

Miniconda is a much smaller download and is available from:
https://conda.io/miniconda.html

Math Libraries

The releases are built against the Intel Math Kernel Library. These libraries are available through Anaconda or Miniconda using the following commands:

  • conda install mkl numpy