19 #ifndef LA_LINSYS_BDDC_HH_ 20 #define LA_LINSYS_BDDC_HH_ 44 const int matrixTypeInt = 0,
45 const int numSubLoc = 1,
46 const bool swap_sign =
false );
48 void set_tolerances(
double r_tol,
double a_tol,
unsigned int max_it)
override;
50 void load_mesh(
const int nDim,
const int numNodes,
const int numDofs,
61 void mat_set_values(
int nrow,
int *rows,
int ncol,
int *cols,
double *vals );
63 void rhs_set_values(
int nrow,
int *rows,
double *vals );
65 void diagonal_weights_set_value(
int global_index,
double value );
67 PetscErrorCode mat_zero_entries()
override;
69 PetscErrorCode rhs_zero_entries()
override;
71 void finish_assembly( );
73 void apply_constrains(
double scalar = 1. );
79 double get_solution_precision();
85 return numeric_limits<double>::max();
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?
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.
Abstract linear system class.
std::vector< double > locSolution_
subdomain solution
Multilevel BDDC based linear system solver.