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

#include <iluprecond.h>

Inheritance diagram for oofem::CompCol_ILUPreconditioner:
Collaboration diagram for oofem::CompCol_ILUPreconditioner:

Public Member Functions

 CompCol_ILUPreconditioner (const SparseMtrx &A, InputRecord &attributes)
 Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix.
 CompCol_ILUPreconditioner ()
 Constructor. The user should call initializeFrom and init services in this given order to ensure consistency.
virtual ~CompCol_ILUPreconditioner (void)
 Destructor.
void init (const SparseMtrx &) override
void initialize (const CompCol &A)
void initialize (const DynCompCol &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 qsortRow (IntArray &, FloatArray &, int l, int r)
int qsortRowPartition (IntArray &, FloatArray &, int l, int r)

Private Attributes

FloatArray l_val
IntArray l_colptr
IntArray l_rowind
int l_nz
FloatArray u_val
IntArray u_colptr
IntArray u_rowind
int u_nz
int dim [2]

Detailed Description

Implemantation of ILU (Incomplete LU) Preconditioner. No fill-up - ILU(0).

Definition at line 45 of file iluprecond.h.

Constructor & Destructor Documentation

◆ CompCol_ILUPreconditioner() [1/2]

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

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

Definition at line 42 of file iluprecond.C.

References oofem::Preconditioner::Preconditioner().

◆ CompCol_ILUPreconditioner() [2/2]

oofem::CompCol_ILUPreconditioner::CompCol_ILUPreconditioner ( )
inline

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

Definition at line 64 of file iluprecond.h.

References oofem::Preconditioner::Preconditioner().

◆ ~CompCol_ILUPreconditioner()

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

Destructor.

Definition at line 66 of file iluprecond.h.

Member Function Documentation

◆ giveClassName()

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

Returns the preconditioner name.

Reimplemented from oofem::Preconditioner.

Definition at line 76 of file iluprecond.h.

◆ init()

void oofem::CompCol_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 54 of file iluprecond.C.

References oofem::Timer::getUtime(), initialize(), OOFEM_ERROR, OOFEM_LOG_INFO, oofem::Timer::startTimer(), and oofem::Timer::stopTimer().

◆ initialize() [1/2]

void oofem::CompCol_ILUPreconditioner::initialize ( const CompCol & A)

◆ initialize() [2/2]

◆ initializeFrom()

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

Initializes receiver from given record. Empty implementation.

Reimplemented from oofem::Preconditioner.

Definition at line 47 of file iluprecond.C.

◆ qsortRow()

void oofem::CompCol_ILUPreconditioner::qsortRow ( IntArray & src,
FloatArray & val,
int l,
int r )
protected

Definition at line 323 of file iluprecond.C.

References qsortRow(), and qsortRowPartition().

Referenced by initialize(), and qsortRow().

◆ qsortRowPartition()

int oofem::CompCol_ILUPreconditioner::qsortRowPartition ( IntArray & src,
FloatArray & val,
int l,
int r )
protected

Definition at line 336 of file iluprecond.C.

Referenced by qsortRow().

◆ solve()

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

Solves the linear system.

Parameters
rhsRight hand side.
solutionSolution.

Implements oofem::Preconditioner.

Definition at line 265 of file iluprecond.C.

References oofem::FloatArray::giveSize(), l_colptr, l_rowind, l_val, oofem::FloatArray::resize(), u_colptr, u_rowind, u_val, and oofem::FloatArray::zero().

◆ trans_solve()

void oofem::CompCol_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 292 of file iluprecond.C.

References oofem::FloatArray::giveSize(), l_colptr, l_rowind, l_val, oofem::FloatArray::resize(), u_colptr, u_rowind, and u_val.

Member Data Documentation

◆ dim

int oofem::CompCol_ILUPreconditioner::dim[2]
private

Definition at line 58 of file iluprecond.h.

Referenced by initialize(), and initialize().

◆ l_colptr

IntArray oofem::CompCol_ILUPreconditioner::l_colptr
private

Definition at line 49 of file iluprecond.h.

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

◆ l_nz

int oofem::CompCol_ILUPreconditioner::l_nz
private

Definition at line 51 of file iluprecond.h.

Referenced by initialize(), and initialize().

◆ l_rowind

IntArray oofem::CompCol_ILUPreconditioner::l_rowind
private

Definition at line 50 of file iluprecond.h.

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

◆ l_val

FloatArray oofem::CompCol_ILUPreconditioner::l_val
private

Definition at line 48 of file iluprecond.h.

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

◆ u_colptr

IntArray oofem::CompCol_ILUPreconditioner::u_colptr
private

Definition at line 54 of file iluprecond.h.

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

◆ u_nz

int oofem::CompCol_ILUPreconditioner::u_nz
private

Definition at line 56 of file iluprecond.h.

Referenced by initialize(), and initialize().

◆ u_rowind

IntArray oofem::CompCol_ILUPreconditioner::u_rowind
private

Definition at line 55 of file iluprecond.h.

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

◆ u_val

FloatArray oofem::CompCol_ILUPreconditioner::u_val
private

Definition at line 53 of file iluprecond.h.

Referenced by initialize(), initialize(), solve(), and trans_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