OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::SparseLinearSystemNM Class Referenceabstract

This base class is an abstraction for all numerical methods solving sparse linear system of equations. More...

#include <sparselinsystemnm.h>

+ Inheritance diagram for oofem::SparseLinearSystemNM:
+ Collaboration diagram for oofem::SparseLinearSystemNM:

Public Member Functions

 SparseLinearSystemNM (Domain *d, EngngModel *m)
 Constructor. More...
virtual ~SparseLinearSystemNM ()
 Destructor. More...
virtual const char * giveClassName () const =0
std::string errorInfo (const char *func)
virtual LinSystSolverType giveLinSystSolverType () const =0
virtual NM_Status solve (SparseMtrx &A, FloatArray &b, FloatArray &x)=0
 Solves the given sparse linear system of equations $ A\cdot x=b $. More...
virtual NM_Status solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X)
 Solves the given sparse linear system of equations $ A\cdot X=B $. More...
virtual SparseMtrxType giveRecommendedMatrix (bool symmetric) const =0
 Returns the recommended sparse matrix type for this solver. 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
 Pointer to domain. More...
 Pointer to engineering model. More...

Detailed Description

This base class is an abstraction for all numerical methods solving sparse linear system of equations.

The purpose of this class is to declare the general interface to all numerical methods solving this kind of problem. This interface allows to use any suitable instance of the Numerical method class to the solve problem, and leave the whole engineering model code, including mapping, unchanged, because all instances of this class provide the common interface.

Definition at line 58 of file sparselinsystemnm.h.

Constructor & Destructor Documentation

oofem::SparseLinearSystemNM::SparseLinearSystemNM ( Domain d,
EngngModel m 


Definition at line 41 of file sparselinsystemnm.C.

oofem::SparseLinearSystemNM::~SparseLinearSystemNM ( )


Definition at line 44 of file sparselinsystemnm.C.

Member Function Documentation

std :: string oofem::SparseLinearSystemNM::errorInfo ( const char *  func)

Definition at line 67 of file sparselinsystemnm.h.

virtual const char* oofem::SparseLinearSystemNM::giveClassName ( ) const
pure virtual
virtual LinSystSolverType oofem::SparseLinearSystemNM::giveLinSystSolverType ( ) const
pure virtual
virtual SparseMtrxType oofem::SparseLinearSystemNM::giveRecommendedMatrix ( bool  symmetric) const
pure virtual
virtual NM_Status oofem::SparseLinearSystemNM::solve ( SparseMtrx A,
FloatArray b,
FloatArray x 
pure virtual

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

ACoefficient matrix.
bRight hand side.
xSolution array.
Status of the solver.

Implemented in oofem::FETISolver, oofem::IMLSolver, oofem::SpoolesSolver, oofem::SuperLUSolver, oofem::LDLTFactorization, oofem::PardisoProjectOrgSolver, oofem::MKLPardisoSolver, and oofem::PetscSolver.

Referenced by oofem::NonLinearStatic::proceedStep(), solve(), oofem::InverseIteration::solve(), and oofem::StaticStructural::solveYourselfAt().

NM_Status oofem::SparseLinearSystemNM::solve ( SparseMtrx A,
FloatMatrix B,
FloatMatrix X 

Solves the given sparse linear system of equations $ A\cdot X=B $.

Default implementation calls solve multiple times.

ACoefficient matrix.
BRight hand side.
XSolution matrix.
Status of the solver.

Definition at line 47 of file sparselinsystemnm.C.

References oofem::FloatMatrix::copyColumn(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::SparseMtrx::giveNumberOfRows(), oofem::FloatMatrix::giveNumberOfRows(), NM_None, NM_NoSuccess, OOFEM_ERROR, oofem::FloatMatrix::resize(), oofem::FloatMatrix::setColumn(), and solve().

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