OOFEM 3.0
Loading...
Searching...
No Matches
oofem::SparseLinearSystemNM Class Referenceabstract

#include <sparselinsystemnm.h>

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

Public Member Functions

 SparseLinearSystemNM (Domain *d, EngngModel *m)
 Constructor.
virtual ~SparseLinearSystemNM ()
 Destructor.
virtual const char * giveClassName () const =0
std::string errorInfo (const char *func)
virtual LinSystSolverType giveLinSystSolverType () const =0
virtual ConvergedReason solve (SparseMtrx &A, FloatArray &b, FloatArray &x)=0
virtual ConvergedReason solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X)
virtual SparseMtrxType giveRecommendedMatrix (bool symmetric) const =0
Public Member Functions inherited from oofem::NumericalMethod
 NumericalMethod (Domain *d, EngngModel *m)
virtual ~NumericalMethod ()
 Destructor.
EngngModelgiveEngngModel ()
virtual void initializeFrom (InputRecord &ir)
virtual void reinitialize ()
virtual void setDomain (Domain *d)
virtual void saveContext (DataStream &stream, ContextMode mode)
virtual void restoreContext (DataStream &stream, ContextMode mode)

Additional Inherited Members

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

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

◆ SparseLinearSystemNM()

◆ ~SparseLinearSystemNM()

oofem::SparseLinearSystemNM::~SparseLinearSystemNM ( )
virtual

Destructor.

Definition at line 44 of file sparselinsystemnm.C.

Member Function Documentation

◆ errorInfo()

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

Definition at line 67 of file sparselinsystemnm.h.

References giveClassName().

◆ giveClassName()

virtual const char * oofem::SparseLinearSystemNM::giveClassName ( ) const
pure virtual

◆ giveLinSystSolverType()

virtual LinSystSolverType oofem::SparseLinearSystemNM::giveLinSystSolverType ( ) const
pure virtual

◆ giveRecommendedMatrix()

virtual SparseMtrxType oofem::SparseLinearSystemNM::giveRecommendedMatrix ( bool symmetric) const
pure virtual

◆ solve() [1/2]

virtual ConvergedReason oofem::SparseLinearSystemNM::solve ( SparseMtrx & A,
FloatArray & b,
FloatArray & x )
pure 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.

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

References solve().

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

◆ solve() [2/2]

ConvergedReason oofem::SparseLinearSystemNM::solve ( SparseMtrx & A,
FloatMatrix & B,
FloatMatrix & X )
virtual

Solves the given sparse linear system of equations \( A\cdot X=B \). Default implementation calls solve multiple times.

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

Definition at line 47 of file sparselinsystemnm.C.

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


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

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011