OOFEM 3.0
Loading...
Searching...
No Matches
oofem::PardisoProjectOrgSolver Class Reference

#include <pardisoprojectorgsolver.h>

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

Public Member Functions

 PardisoProjectOrgSolver (Domain *d, EngngModel *m)
virtual ~PardisoProjectOrgSolver ()
ConvergedReason solve (SparseMtrx &A, FloatArray &b, FloatArray &x) override
const char * giveClassName () const override
LinSystSolverType giveLinSystSolverType () const override
SparseMtrxType giveRecommendedMatrix (bool symmetric) const override
Public Member Functions inherited from oofem::SparseLinearSystemNM
 SparseLinearSystemNM (Domain *d, EngngModel *m)
 Constructor.
virtual ~SparseLinearSystemNM ()
 Destructor.
std::string errorInfo (const char *func)
virtual ConvergedReason solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X)
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

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 60 of file pardisoprojectorgsolver.h.

Constructor & Destructor Documentation

◆ PardisoProjectOrgSolver()

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.

References oofem::SparseLinearSystemNM::SparseLinearSystemNM().

◆ ~PardisoProjectOrgSolver()

oofem::PardisoProjectOrgSolver::~PardisoProjectOrgSolver ( )
virtual

Definition at line 52 of file pardisoprojectorgsolver.C.

Member Function Documentation

◆ giveClassName()

const char * oofem::PardisoProjectOrgSolver::giveClassName ( ) const
inlineoverridevirtual

Implements oofem::SparseLinearSystemNM.

Definition at line 74 of file pardisoprojectorgsolver.h.

◆ giveLinSystSolverType()

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

Implements oofem::SparseLinearSystemNM.

Definition at line 75 of file pardisoprojectorgsolver.h.

References oofem::ST_PardisoProjectOrg.

◆ giveRecommendedMatrix()

SparseMtrxType oofem::PardisoProjectOrgSolver::giveRecommendedMatrix ( bool symmetric) const
inlineoverridevirtual

Returns the recommended sparse matrix type for this solver.

Implements oofem::SparseLinearSystemNM.

Definition at line 76 of file pardisoprojectorgsolver.h.

References oofem::SMT_CompCol.

◆ solve()

ConvergedReason oofem::PardisoProjectOrgSolver::solve ( SparseMtrx & A,
FloatArray & b,
FloatArray & x )
overridevirtual

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::CR_CONVERGED, oofem::CR_FAILED, oofem::Timer::getUtime(), oofem::CompCol::giveColPtr(), oofem::SparseMtrx::giveNumberOfRows(), oofem::FloatArray::givePointer(), oofem::IntArray::givePointer(), oofem::CompCol::giveRowIndex(), oofem::FloatArray::giveSize(), oofem::CompCol::giveValues(), 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-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