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

#include <ilucomprowprecond.h>

Inheritance diagram for oofem::CompRow_ILUPreconditioner:
Collaboration diagram for oofem::CompRow_ILUPreconditioner:

Public Member Functions

 CompRow_ILUPreconditioner (const SparseMtrx &A, InputRecord &attributes)
 Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix.
 CompRow_ILUPreconditioner ()
 Constructor. The user should call initializeFrom and init services in this given order to ensure consistency.
virtual ~CompRow_ILUPreconditioner (void)
 Destructor.
void init (const SparseMtrx &a) override
void initialize (const DynCompRow &A)
void solve (const FloatArray &x, FloatArray &y) const override
void trans_solve (const FloatArray &x, FloatArray &y) const override
const char * giveClassName () const override
 Returns the preconditioner name.
void initializeFrom (InputRecord &ir) override
 Initializes receiver from given record. Empty implementation.
Public Member Functions inherited from oofem::Preconditioner
 Preconditioner (const SparseMtrx &a, InputRecord &attributes)
 Preconditioner ()
virtual ~Preconditioner (void)
 Destructor.
FloatArray solve (const FloatArray &rhs) const
FloatArray trans_solve (const FloatArray &rhs) const

Protected Member Functions

void qsortCol (IntArray &, FloatArray &, int l, int r)
int qsortColPartition (IntArray &, FloatArray &, int l, int r)

Private Attributes

DynCompRow A
double drop_tol
int part_fill

Detailed Description

Implemantation of ILU (Incomplete LU) Preconditioner for compressed row sparse matrices. Fill - up supported.

Definition at line 55 of file ilucomprowprecond.h.

Constructor & Destructor Documentation

◆ CompRow_ILUPreconditioner() [1/2]

oofem::CompRow_ILUPreconditioner::CompRow_ILUPreconditioner ( const SparseMtrx & A,
InputRecord & attributes )

Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix.

Definition at line 40 of file ilucomprowprecond.C.

References A, and oofem::Preconditioner::Preconditioner().

◆ CompRow_ILUPreconditioner() [2/2]

oofem::CompRow_ILUPreconditioner::CompRow_ILUPreconditioner ( )
inline

Constructor. The user should call initializeFrom and init services in this given order to ensure consistency.

Definition at line 67 of file ilucomprowprecond.h.

References oofem::Preconditioner::Preconditioner().

◆ ~CompRow_ILUPreconditioner()

virtual oofem::CompRow_ILUPreconditioner::~CompRow_ILUPreconditioner ( void )
inlinevirtual

Destructor.

Definition at line 69 of file ilucomprowprecond.h.

Member Function Documentation

◆ giveClassName()

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

Returns the preconditioner name.

Reimplemented from oofem::Preconditioner.

Definition at line 79 of file ilucomprowprecond.h.

◆ init()

void oofem::CompRow_ILUPreconditioner::init ( const SparseMtrx & a)
overridevirtual

Initializes the receiver (constructs the preconditioning matrix M) of given matrix. Virtual service, to be implemented by derived classes. Should be called after initializeFrom service.

Parameters
aSparse matrix to be preconditioned.

Reimplemented from oofem::Preconditioner.

Definition at line 57 of file ilucomprowprecond.C.

References A, drop_tol, OOFEM_ERROR, and part_fill.

◆ initialize()

void oofem::CompRow_ILUPreconditioner::initialize ( const DynCompRow & A)

References A, solve(), and trans_solve().

◆ initializeFrom()

void oofem::CompRow_ILUPreconditioner::initializeFrom ( InputRecord & ir)
overridevirtual

Initializes receiver from given record. Empty implementation.

Reimplemented from oofem::Preconditioner.

Definition at line 45 of file ilucomprowprecond.C.

References _IFT_CompRow_ILUPrecond_droptol, _IFT_CompRow_ILUPrecond_partfill, drop_tol, IR_GIVE_OPTIONAL_FIELD, and part_fill.

◆ qsortCol()

void oofem::CompRow_ILUPreconditioner::qsortCol ( IntArray & ,
FloatArray & ,
int l,
int r )
protected

◆ qsortColPartition()

int oofem::CompRow_ILUPreconditioner::qsortColPartition ( IntArray & ,
FloatArray & ,
int l,
int r )
protected

◆ solve()

void oofem::CompRow_ILUPreconditioner::solve ( const FloatArray & rhs,
FloatArray & solution ) const
overridevirtual

Solves the linear system.

Parameters
rhsRight hand side.
solutionSolution.

Implements oofem::Preconditioner.

Definition at line 69 of file ilucomprowprecond.C.

References A.

Referenced by initialize().

◆ trans_solve()

void oofem::CompRow_ILUPreconditioner::trans_solve ( const FloatArray & rhs,
FloatArray & solution ) const
overridevirtual

Solves the transposed system.

Parameters
rhsRight hand side.
solutionSolution.

Implements oofem::Preconditioner.

Definition at line 76 of file ilucomprowprecond.C.

References A.

Referenced by initialize().

Member Data Documentation

◆ A

DynCompRow oofem::CompRow_ILUPreconditioner::A
private

Definition at line 58 of file ilucomprowprecond.h.

Referenced by CompRow_ILUPreconditioner(), init(), initialize(), solve(), and trans_solve().

◆ drop_tol

double oofem::CompRow_ILUPreconditioner::drop_tol
private

Definition at line 60 of file ilucomprowprecond.h.

Referenced by init(), and initializeFrom().

◆ part_fill

int oofem::CompRow_ILUPreconditioner::part_fill
private

Definition at line 61 of file ilucomprowprecond.h.

Referenced by init(), and initializeFrom().


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