OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::MKLPardisoSolver Class Reference

Implements the solution of linear system of equation in the form $ A\cdot x=b $ using solvers from MKL Pardiso. More...

#include <mklpardisosolver.h>

+ Inheritance diagram for oofem::MKLPardisoSolver:
+ Collaboration diagram for oofem::MKLPardisoSolver:

Public Member Functions

 MKLPardisoSolver (Domain *d, EngngModel *m)
 Constructor. More...
 
virtual ~MKLPardisoSolver ()
 
virtual NM_Status solve (SparseMtrx &A, FloatArray &b, FloatArray &x)
 Solves the given sparse linear system of equations $ A\cdot x=b $. More...
 
virtual const char * giveClassName () const
 
virtual LinSystSolverType giveLinSystSolverType () const
 
virtual SparseMtrxType giveRecommendedMatrix (bool symmetric) const
 Returns the recommended sparse matrix type for this solver. More...
 
- Public Member Functions inherited from oofem::SparseLinearSystemNM
 SparseLinearSystemNM (Domain *d, EngngModel *m)
 Constructor. More...
 
virtual ~SparseLinearSystemNM ()
 Destructor. More...
 
std::string errorInfo (const char *func)
 
virtual NM_Status solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X)
 Solves the given sparse linear system of equations $ A\cdot X=B $. More...
 
- Public Member Functions inherited from oofem::NumericalMethod
 NumericalMethod (Domain *d, EngngModel *m)
 Constructor. More...
 
virtual ~NumericalMethod ()
 Destructor. More...
 
EngngModelgiveEngngModel ()
 
virtual IRResultType initializeFrom (InputRecord *ir)
 
virtual void reinitialize ()
 Reinitializes the receiver. More...
 
virtual void setDomain (Domain *d)
 
virtual contextIOResultType saveContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 
virtual contextIOResultType restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL)
 

Additional Inherited Members

- Protected Attributes inherited from oofem::NumericalMethod
Domaindomain
 Pointer to domain. More...
 
EngngModelengngModel
 Pointer to engineering model. More...
 

Detailed Description

Implements the solution of linear system of equation in the form $ A\cdot x=b $ using solvers from MKL Pardiso.

It will not work with Pardiso 5.0. Only works with the CSC (compressed sparse column) sparse matrix implementation.

Author
Mikael Öhman

Definition at line 51 of file mklpardisosolver.h.

Constructor & Destructor Documentation

oofem::MKLPardisoSolver::MKLPardisoSolver ( Domain d,
EngngModel m 
)

Constructor.

Parameters
dDomain which solver belongs to.
mEngineering model which solver belongs to.

Definition at line 51 of file mklpardisosolver.C.

oofem::MKLPardisoSolver::~MKLPardisoSolver ( )
virtual

Definition at line 53 of file mklpardisosolver.C.

Member Function Documentation

virtual const char* oofem::MKLPardisoSolver::giveClassName ( ) const
inlinevirtual

Implements oofem::SparseLinearSystemNM.

Definition at line 65 of file mklpardisosolver.h.

virtual LinSystSolverType oofem::MKLPardisoSolver::giveLinSystSolverType ( ) const
inlinevirtual
Returns
LinSystSolverType value, corresponding to receiver.

Implements oofem::SparseLinearSystemNM.

Definition at line 66 of file mklpardisosolver.h.

References oofem::ST_MKLPardiso.

virtual SparseMtrxType oofem::MKLPardisoSolver::giveRecommendedMatrix ( bool  symmetric) const
inlinevirtual

Returns the recommended sparse matrix type for this solver.

Implements oofem::SparseLinearSystemNM.

Definition at line 67 of file mklpardisosolver.h.

References oofem::SMT_CompCol.

NM_Status oofem::MKLPardisoSolver::solve ( SparseMtrx A,
FloatArray b,
FloatArray x 
)
virtual

Solves the given sparse linear system of equations $ A\cdot x=b $.

Parameters
ACoefficient matrix.
bRight hand side.
xSolution array.
Returns
Status of the solver.
Todo:
pardisoinit seems to write outside this array
Todo:
I might be misunderstanding something, but this iterative solver still does a full factorization. No options for incomplete factorizations.
Todo:
I have no idea if this is suitable value. Examples use 2. / Mikael
Todo:
This is not included in the table of options for some reason!

Implements oofem::SparseLinearSystemNM.

Definition at line 55 of file mklpardisosolver.C.

References oofem::FloatArray::computeSquaredNorm(), oofem::Timer::getUtime(), oofem::CompCol::giveColPtr(), oofem::IntArray::givePointer(), oofem::FloatArray::givePointer(), oofem::CompCol::giveRowIndex(), oofem::FloatArray::giveSize(), oofem::CompCol::giveValues(), NM_NoSuccess, NM_Success, OOFEM_ERROR, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, OOFEM_WARNING, pardiso(), pardisoinit(), oofem::FloatArray::resize(), oofem::Timer::startTimer(), and oofem::Timer::stopTimer().


The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:38 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011