PCBlockDiagonal Class Reference

#include <PCBlockDiagonal.hpp>

Collaboration diagram for PCBlockDiagonal:
Collaboration graph
[legend]

List of all members.

Classes

struct  PCBlockDiagonalContext

Public Member Functions

 PCBlockDiagonal (KSP &rKspObject)

Public Attributes

PCBlockDiagonalContext mPCContext
PC mPetscPCObject

Private Member Functions

void PCBlockDiagonalCreate (KSP &rKspObject)
void PCBlockDiagonalSetUp ()

Detailed Description

This class defines a PETSc-compliant purpouse-build preconditioner.

Let A be a matrix arising in the FEM discretisation of the bidomain equations with the following block structure:

A = (A11 B') (B A22)

By creating an instance of this class, one will define the following preconditioner:

inv(M) = inv( (A11 0) = (inv(A11) 0) (0 A22) ) (0 inv(A22))

The inverses are approximate with one cycle of AMG.

Note: This class requires PETSc to be build including HYPRE library. If it's not available, it will throw the following error:

[0]PETSC ERROR: --------------------- Error Message ------------------------------------ [0]PETSC ERROR: Unknown type. Check for miss-spelling or missing external package needed for type! [0]PETSC ERROR: Unable to find requested PC type hypre!

and will approximate the inverse of the subblocks with PETSc's default preconditioner (bjacobi at the time of writing this).

Definition at line 82 of file PCBlockDiagonal.hpp.


Constructor & Destructor Documentation

PCBlockDiagonal::PCBlockDiagonal ( KSP &  rKspObject  ) 

Constructor.

Parameters:
rKspObject KSP object where we want to install the block diagonal preconditioner.

Definition at line 35 of file PCBlockDiagonal.cpp.

References mPCContext, PCBlockDiagonalCreate(), and PCBlockDiagonalSetUp().


Member Function Documentation

void PCBlockDiagonal::PCBlockDiagonalCreate ( KSP &  rKspObject  )  [private]
void PCBlockDiagonal::PCBlockDiagonalSetUp (  )  [private]

Member Data Documentation

PC context, this will be passed to PCBlockDiagonalApply when PETSc returns control to our preconditioner subroutine. See PCShellSetContext().

Definition at line 109 of file PCBlockDiagonal.hpp.

Referenced by PCBlockDiagonal(), PCBlockDiagonalCreate(), and PCBlockDiagonalSetUp().

Generic PETSc preconditioner object

Definition at line 110 of file PCBlockDiagonal.hpp.

Referenced by PCBlockDiagonalCreate().


The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:07:12 2011 for Chaste by  doxygen 1.6.3