Chaste  Release::3.4
PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext Struct Reference

#include <PCTwoLevelsBlockDiagonal.hpp>

+ Collaboration diagram for PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext:

Public Attributes

Mat A11_matrix_subblock
 
Mat A22_B1_matrix_subblock
 
Mat A22_B2_matrix_subblock
 
PC PC_amg_A11
 
PC PC_amg_A22_B1
 
PC PC_amg_A22_B2
 
Vec x1_subvector
 
Vec x21_subvector
 
Vec x22_subvector
 
Vec y1_subvector
 
Vec y21_subvector
 
Vec y22_subvector
 
VecScatter A11_scatter_ctx
 
VecScatter A22_B1_scatter_ctx
 
VecScatter A22_B2_scatter_ctx
 

Detailed Description

This struct defines the state of the preconditioner (initialised data and objects to be reused).

Definition at line 93 of file PCTwoLevelsBlockDiagonal.hpp.

Member Data Documentation

Mat PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A11_matrix_subblock
VecScatter PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A11_scatter_ctx

Scattering context: gather x1 from x and scatter y1 back into y

Definition at line 106 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Mat PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A22_B1_matrix_subblock
VecScatter PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A22_B1_scatter_ctx

Scattering context: gather x21 from x and scatter y21 back into y

Definition at line 107 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Mat PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A22_B2_matrix_subblock
VecScatter PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::A22_B2_scatter_ctx

Scattering context: gather x22 from x and scatter y22 back into y

Definition at line 108 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

PC PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::PC_amg_A11
PC PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::PC_amg_A22_B1
PC PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::PC_amg_A22_B2

inv(A22_B2) is approximated by an AMG cycle. We compute it with HYPRE via a PC object

Definition at line 99 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::x1_subvector

Used to store the first half of the vector to be preconditioned

Definition at line 100 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::x21_subvector

Used to store the tissue part of the second half of the vector to be preconditioned

Definition at line 101 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::x22_subvector

Used to store the bath part of the second half of the vector to be preconditioned

Definition at line 102 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::y1_subvector

Used to store the first half of the preconditioned vector

Definition at line 103 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::y21_subvector

Used to store the tissue part of the second half of the preconditioned vector

Definition at line 104 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().

Vec PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalContext::y22_subvector

Used to store the bath part second half of the preconditioned vector

Definition at line 105 of file PCTwoLevelsBlockDiagonal.hpp.

Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().


The documentation for this struct was generated from the following file: