Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:integration:general:solvers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:user:integration:general:solvers [2014/10/07 16:19] jorisdoc:user:integration:general:solvers [2016/03/30 15:23] (current) – external edit 127.0.0.1
Line 3: Line 3:
 ===== Introduction ===== ===== Introduction =====
  
-Since 20/07/2005, Metafor includes several linear solvers to solve the system at each iteration when implicitly integrating motion equations. Skyline is the traditional solver, but the direct solver [[http://www.pardiso-project.org/|Pardiso]] and iterative solvers from [[http://www.mcs.anl.gov/petsc//|PETSc]] can also be used. Each of these has advantages and disadvantages.+Since 20/07/2005, Metafor includes several linear solvers to solve the system at each iteration when implicitly integrating motion equations. Skyline is the traditional solver, but the direct solver [[http://www.pardiso-project.org/|Pardiso]] and iterative sparse solver (ISS), a GMRES implemented in the MKL, can also be used.  
 + 
 +By default, as the stiffness matrix is non symmetric the solver used is non symmetric (with symmetric structure). It is however possible to force the stiffness matrix to be symmetric (computing the mean value between upper and lower terms of the matrix) and to use a symmetric solver. 
 + 
 +use :  
 +<code python> 
 +metafor = domain.getMetafor() 
 +solvermanager = metafor.getSolverManager() 
 +solvermanager.setSymmetric(True) # False by default 
 +</code>
  
 ===== Skyline solver ===== ===== Skyline solver =====
  
-Default solver. It does not require any specific configuration. However, it is sequential, occupies a lot of memory and is quite slow on big simulations. However, it is very robust, and the code source is available so it can run on every OS.+Default solver. It does not require any specific configuration. However, it is sequential, occupies a lot of memory and is quite slow on big simulations. However, it is very robust, and the code source is available so it can run on every OS. The Skyline is automatically optimized using Sloan Algorithm. 
  
 ===== Pardiso (DSS) Solver===== ===== Pardiso (DSS) Solver=====
Line 53: Line 63:
 solver.useILUT(20)    # nFill=20 (only 20 elements are kept on the lines of L and U) solver.useILUT(20)    # nFill=20 (only 20 elements are kept on the lines of L and U)
 </code> </code>
 +
 +===== MUMPS (MUltifrontal Massively Parallel sparse direct Solver) =====
 +
 +MUMPS is a sparse direct solver for the solution of large linear algebric systems on distributed memory parallel computers. It implements the multifrontal method, which is a version of Gaussian elimination for large sparse systems of equations, especially those arising from the finite element method. It is written in Fortran 90 with parallelism by MPI and it uses BLAS and ScaLAPACK kernels for dense matrix computations.
 +
 +The input matrix can be supplied to MUMPS in assembled format in coordinate COO (distributed or centralized) or in elemental format.
 +
 +
 +Use:
 +
 +<code python>
 +metafor = domain.getMetafor()
 +solvermanager = metafor.getSolverManager();
 +try: 
 +    solvermanager.setSolver(MUMPSolver());
 +except NameError:
 +    pass
 +</code>
 +
 +MUMPS can be used with multiple threads (CPU cores) by using
 +
 +  Blas.setBlasNumThreads(n)
 +
 +where ''n'' is the number of threads.
doc/user/integration/general/solvers.1412691542.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki