19 #ifndef LA_LINSYS_BDDC_HH_ 20 #define LA_LINSYS_BDDC_HH_ 51 const int matrixTypeInt = 0,
52 const int numSubLoc = 1,
53 const bool swap_sign =
false );
55 void set_tolerances(
double r_tol,
double a_tol,
unsigned int max_it)
override;
57 void load_mesh(
const int nDim,
const int numNodes,
const int numDofs,
68 void mat_set_values(
int nrow,
int *rows,
int ncol,
int *cols,
double *vals )
override;
70 void rhs_set_values(
int nrow,
int *rows,
double *vals )
override;
72 void diagonal_weights_set_value(
int global_index,
double value );
74 PetscErrorCode mat_zero_entries()
override;
76 PetscErrorCode rhs_zero_entries()
override;
78 void finish_assembly( )
override;
80 void apply_constrains(
double scalar = 1. )
override;
86 double get_solution_precision()
override;
92 return numeric_limits<double>::max();
98 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.
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_
Bddcml_ * bddcml_
BDDCML wrapper.
std::vector< double > locSolution_
subdomain solution
Multilevel BDDC based linear system solver.