Release Version 2.1.0

Available at:
https://github.com/devsim/devsim/releases/tag/v2.1.0

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.

Issues initializing DEVSIM. how to solve it

Hello @songzhigang198912 ,

Thanks for trying the software.

Could you please provide more details about what issues you are seeing? It would be good to know the version you have downloaded, and the error message you are seeing?