#include <PCTwoLevelsBlockDiagonal.hpp>
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 |
This struct defines the state of the preconditioner (initialised data and objects to be reused).
Definition at line 86 of file PCTwoLevelsBlockDiagonal.hpp.
Mat object that stores the A11 subblock
Definition at line 87 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Scattering context: gather x1 from x and scatter y1 back into y
Definition at line 99 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Mat object that stores the tissue part of the A22 subblock
Definition at line 88 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Scattering context: gather x21 from x and scatter y21 back into y
Definition at line 100 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Mat object that stores the bath part of the A22 subblock
Definition at line 89 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Scattering context: gather x22 from x and scatter y22 back into y
Definition at line 101 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
inv(A11) is approximated with ILU
Definition at line 90 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
inv(A22_B1) is approximated with ILU
Definition at line 91 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
inv(A22_B2) is approximated by an AMG cycle. We compute it with HYPRE via a PC object
Definition at line 92 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalSetUp(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the first half of the vector to be preconditioned
Definition at line 93 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the tissue part of the second half of the vector to be preconditioned
Definition at line 94 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the bath part of the second half of the vector to be preconditioned
Definition at line 95 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the first half of the preconditioned vector
Definition at line 96 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the tissue part of the second half of the preconditioned vector
Definition at line 97 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().
Used to store the bath part second half of the preconditioned vector
Definition at line 98 of file PCTwoLevelsBlockDiagonal.hpp.
Referenced by PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate(), and PCTwoLevelsBlockDiagonal::~PCTwoLevelsBlockDiagonal().