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

#include <ldltfact.h>

Inheritance diagram for oofem::LDLTFactorization:
Collaboration diagram for oofem::LDLTFactorization:

Public Member Functions

 LDLTFactorization (Domain *d, EngngModel *m)
 Constructor - creates new instance of LDLTFactorization, with number i, belonging to domain d and Engngmodel m.
virtual ~LDLTFactorization ()
 Destructor.
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 Ax=b using direct factorization method. Can work with any sparse matrix implementation. However, the sparse matrix implementation have to support its factorization (canBeFactorized method).

Definition at line 55 of file ldltfact.h.

Constructor & Destructor Documentation

◆ LDLTFactorization()

oofem::LDLTFactorization::LDLTFactorization ( Domain * d,
EngngModel * m )

Constructor - creates new instance of LDLTFactorization, with number i, belonging to domain d and Engngmodel m.

References LDLTFactorization(), and solve().

Referenced by LDLTFactorization().

◆ ~LDLTFactorization()

oofem::LDLTFactorization::~LDLTFactorization ( )
virtual

Destructor.

Definition at line 46 of file ldltfact.C.

Member Function Documentation

◆ giveClassName()

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

Implements oofem::SparseLinearSystemNM.

Definition at line 74 of file ldltfact.h.

◆ giveLinSystSolverType()

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

Implements oofem::SparseLinearSystemNM.

Definition at line 75 of file ldltfact.h.

References oofem::ST_Direct.

◆ giveRecommendedMatrix()

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

Returns the recommended sparse matrix type for this solver.

Implements oofem::SparseLinearSystemNM.

Definition at line 76 of file ldltfact.h.

References oofem::SMT_Skyline, and oofem::SMT_SkylineU.

◆ solve()

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

Solves the given linear system by LDL^T factorization. Implementation rely on factorization support provided by mapped sparse matrix. It calls Lhs->factorized()->backSubstitutionWith(*solutionArray). Sets solved flag to 1 if o.k.

Parameters
Acoefficient matrix
bright hand side
xsolution array
Returns
NM_Status value

Implements oofem::SparseLinearSystemNM.

Definition at line 51 of file ldltfact.C.

References oofem::SparseMtrx::backSubstitutionWith(), oofem::SparseMtrx::canBeFactorized(), oofem::CR_CONVERGED, oofem::SparseMtrx::factorized(), and OOFEM_ERROR.

Referenced by LDLTFactorization().


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