Error with Matlab mex files for linear solvers

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Error with Matlab mex files for linear solvers

Emailed Questions
This post was updated on .
On an old server, which still run on sse2, I run into an error when the linear solver is called to solve a fe model.

The error message reports that the error occurs during run a mex script. Is that due to the mex codes .mexa64 in the lib folder were compiled to run a machine higher than sse2? My other machines higher than sse2 run the new fea-tool multiphysics smoothly.
Reply | Threaded
Open this post in threaded view
|

Re: Error with Matlab mex files for linear solvers

Precise Simulation
Administrator
This post was updated on .
On an old server, which still run on sse2, I run into an error when the linear solver is called to solve a fe model.

The error message reports that the error occurs during run a mex script. Is that due to the mex codes .mexa64 in the lib folder were compiled to run a machine higher than sse2? My other machines higher than sse2 run the new fea-tool multiphysics smoothly.
Compiled Matlab mex files are used for the MUMPS, AMG(CL), and ILU(K) linear solvers. According to the Mathworks, mex files should ideally be compiled match the target system and Matlab version, although mex files compiled for older versions of Matlab "usually" runs on newer versions. Unfortunately, it is not possible to compile the mex files for every combination of systems and Matlab versions with the limited development resources available, so as to ensure a large enough compatibility span the mex files distributed with FEATool Multiphysics are currently (v1.13) compiled with

  - Matlab R2011b with TDM-GCC 9.2.0 for Windows (10)
  - Matlab R2015b with GCC 7.5/glibc 2.27 for (Ubuntu 18.04) Linux
  - Matlab R2015a CLANG 10.44.4 for Mac OSX (10.13 High Sierra)

(1) Even if the mex files for linear solvers are incompatible, FEATool is designed so that it will fall back to using the built-in linear solvers that come with Matlab (UMFPACK/SuiteSparse), which are still one of the best direct sparse linear solver available.

(2) If you previously found that a mex solver worked, but currently does not you can retrieve older versions from the FEATool GitHub repository

  https://github.com/precise-simulation/featool-multiphysics/releases

and simply substitute the new mex files for the old in the mex folder of the FEATool program/installation directory.

(3) If your system is very old, updating to a newer OS/Matlab version can also help.

(4) Finally, the linear solvers mentioned above are fully open source and can be compiled for your specific system manually:

  - MUMPS:   http://mumps.enseeiht.fr
  - AMG(CL): https://github.com/ddemidov/amgcl
  - ILU(K):  https://www.mathworks.com/matlabcentral/fileexchange/48320-ilu-k-preconditioner