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

Class implementig interface to SuperLU_MT solver. More...

#include <superlusolver.h>

+ Inheritance diagram for oofem::SuperLUSolver:
+ Collaboration diagram for oofem::SuperLUSolver:

Public Member Functions

 SuperLUSolver (Domain *d, EngngModel *m)
 
virtual ~SuperLUSolver ()
 Destructor. More...
 
virtual NM_Status solve (SparseMtrx &A, FloatArray &b, FloatArray &x)
 Solves the given linear system iteratively by method described by SuperLU SolverType. More...
 
virtual SparseMtrxType giveRecommendedMatrix (bool symmetric) const
 Returns the recommended sparse matrix type for this solver. More...
 
virtual IRResultType initializeFrom (InputRecord *ir)
 
virtual const char * giveClassName () const
 
virtual LinSystSolverType giveLinSystSolverType () const
 
- 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 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)
 

Private Member Functions

int_t cholnzcnt (int_t neqns, int_t *xadj, int_t *adjncy, int_t *perm, int_t *invp, int_t *etpar, int_t *colcnt, int_t *nlnz, int_t *part_super_L)
 
void convertRhs (SuperMatrix *A, FloatArray &x)
 
int_t dPrint_CompCol_Matrix (SuperMatrix *A)
 
int_t dPrint_Dense_Matrix (SuperMatrix *A)
 

Additional Inherited Members

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

Detailed Description

Class implementig interface to SuperLU_MT solver.

Dependencies: iml module required (CompCol) Note: There is a conflict in include file (set.h) as defined by libstdc and superlu_mt 3.1. Therefore it is assumed that superlu include files are included using #include "SUPERLU_MT/include". The ${SUPERLU_MT_DIR} is added into compiler include path. The SUPERLU_MT/include has to be manually added pointing to ${SUPERLU_MT__DIR}/src directory

Definition at line 57 of file superlusolver.h.

Constructor & Destructor Documentation

oofem::SuperLUSolver::SuperLUSolver ( Domain d,
EngngModel m 
)
oofem::SuperLUSolver::~SuperLUSolver ( )
virtual

Destructor.

Definition at line 60 of file superlusolver.C.

Member Function Documentation

int_t oofem::SuperLUSolver::cholnzcnt ( int_t  neqns,
int_t *  xadj,
int_t *  adjncy,
int_t *  perm,
int_t *  invp,
int_t *  etpar,
int_t *  colcnt,
int_t *  nlnz,
int_t *  part_super_L 
)
private
void oofem::SuperLUSolver::convertRhs ( SuperMatrix *  A,
FloatArray x 
)
private

Definition at line 322 of file superlusolver.C.

References oofem::FloatArray::at(), OOFEM_ERROR, and oofem::FloatArray::zero().

Referenced by solve().

int_t oofem::SuperLUSolver::dPrint_CompCol_Matrix ( SuperMatrix *  A)
private

Definition at line 345 of file superlusolver.C.

int_t oofem::SuperLUSolver::dPrint_Dense_Matrix ( SuperMatrix *  A)
private

Definition at line 373 of file superlusolver.C.

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

Implements oofem::SparseLinearSystemNM.

Definition at line 80 of file superlusolver.h.

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

Implements oofem::SparseLinearSystemNM.

Definition at line 81 of file superlusolver.h.

References oofem::ST_SuperLU_MT.

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

Returns the recommended sparse matrix type for this solver.

Implements oofem::SparseLinearSystemNM.

Definition at line 74 of file superlusolver.h.

References oofem::SMT_CompCol.

IRResultType oofem::SuperLUSolver::initializeFrom ( InputRecord ir)
virtual

Reimplemented from oofem::NumericalMethod.

Definition at line 64 of file superlusolver.C.

References oofem::IRRT_OK.

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

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:42 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011