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

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

#include <pardisoprojectorgsolver.h>

+ Inheritance diagram for oofem::PardisoProjectOrgSolver:
+ Collaboration diagram for oofem::PardisoProjectOrgSolver:

Public Member Functions

 PardisoProjectOrgSolver (Domain *d, EngngModel *m)
 Constructor. More...
 
virtual ~PardisoProjectOrgSolver ()
 
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 Pardiso-project.org.

Adapted from mklpardisosolver implementation by M. Ohman Only works with the CSC (compressed sparse column) sparse matrix implementation.

Definition at line 58 of file pardisoprojectorgsolver.h.

Constructor & Destructor Documentation

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

Constructor.

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

Definition at line 50 of file pardisoprojectorgsolver.C.

oofem::PardisoProjectOrgSolver::~PardisoProjectOrgSolver ( )
virtual

Definition at line 52 of file pardisoprojectorgsolver.C.

Member Function Documentation

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

Implements oofem::SparseLinearSystemNM.

Definition at line 72 of file pardisoprojectorgsolver.h.

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

Implements oofem::SparseLinearSystemNM.

Definition at line 73 of file pardisoprojectorgsolver.h.

References oofem::ST_PardisoProjectOrg.

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

Returns the recommended sparse matrix type for this solver.

Implements oofem::SparseLinearSystemNM.

Definition at line 74 of file pardisoprojectorgsolver.h.

References oofem::SMT_CompCol.

NM_Status oofem::PardisoProjectOrgSolver::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 54 of file pardisoprojectorgsolver.C.

References oofem::FloatArray::computeSquaredNorm(), oofem::Timer::getUtime(), oofem::CompCol::giveColPtr(), oofem::SparseMtrx::giveNumberOfRows(), 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:39 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011