19 #ifndef LA_LINSYS_BDDC_HH_ 20 #define LA_LINSYS_BDDC_HH_ 49 const bool swap_sign =
false );
52 void set_tolerances(
double r_tol,
double a_tol,
unsigned int max_it)
override;
71 void load_mesh( BDDCMatrixType matrix_type,
72 const int nDim,
const int numNodes,
const int numDofs,
83 void mat_set_values(
int nrow,
int *rows,
int ncol,
int *cols,
double *vals )
override;
85 void rhs_set_values(
int nrow,
int *rows,
double *vals )
override;
87 void diagonal_weights_set_value(
int global_index,
double value );
89 PetscErrorCode mat_zero_entries()
override;
91 PetscErrorCode rhs_zero_entries()
override;
93 void finish_assembly( )
override;
95 void apply_constrains(
double scalar = 1. )
override;
101 double get_solution_precision()
override;
107 return numeric_limits<double>::max();
113 void print_matrix(std::ostream& out);
int bddcml_verbosity_level_
VecScatter VSpetscToSubScatter_
scatter from solution_ to locSolVec_
std::vector< int > isngn_
indices of subdomain nodes in global numbering
Wrappers for linear systems based on MPIAIJ and MATIS format.
enum matrixTypeEnum MatrixType
bool use_adaptive_bddc_
should adaptive BDDC be used?
static constexpr bool value
double compute_residual() override
Vec locSolVec_
local solution PETSc vector - sequential
int max_nondecr_it_
parameters expected from input file:
static const int registrar
Registrar of class to factory.
const bool swap_sign_
swap sign of matrix and rhs entries, e.g. to make the matrix SPD
int number_of_levels_
number of levels in the multilevel method
la::BddcmlWrapper Bddcml_
la::BddcmlWrapper::MatrixType BDDCMatrixType
Bddcml_ * bddcml_
BDDCML wrapper.
std::vector< double > locSolution_
subdomain solution
Multilevel BDDC based linear system solver.