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,
double d_tol,
unsigned int max_it)
override;
72 const int nDim,
const int numNodes,
const int numDofs,
107 return numeric_limits<double>::max();
int bddcml_verbosity_level_
void mat_set_values(int nrow, int *rows, int ncol, int *cols, double *vals) override
Vec locSolVec_
local solution PETSc vector - sequential
std::vector< int > isngn_
indices of subdomain nodes in global numbering
static const int registrar
Registrar of class to factory.
void print_matrix(std::ostream &out)
PetscErrorCode rhs_zero_entries() override
void apply_constrains(double scalar=1.) override
la::BddcmlWrapper Bddcml_
double get_solution_precision() override
void set_tolerances(double r_tol, double a_tol, double d_tol, unsigned int max_it) override
Sets tolerances. Note that BDDC does not use a_tol.
int number_of_levels_
number of levels in the multilevel method
void finish_assembly() override
static const Input::Type::Record & get_input_type()
const bool swap_sign_
swap sign of matrix and rhs entries, e.g. to make the matrix SPD
LinSys::SolveInfo solve() override
bool use_adaptive_bddc_
should adaptive BDDC be used?
la::BddcmlWrapper::MatrixType BDDCMatrixType
PetscErrorCode mat_zero_entries() override
int max_nondecr_it_
parameters expected from input file:
void load_mesh(BDDCMatrixType matrix_type, const int nDim, const int numNodes, const int numDofs, const std::vector< int > &inet, const std::vector< int > &nnet, const std::vector< int > &nndf, const std::vector< int > &isegn, const std::vector< int > &isngn, const std::vector< int > &isvgvn, const std::vector< double > &xyz, const std::vector< double > &element_permeability, const int meshDim)
VecScatter VSpetscToSubScatter_
scatter from solution_ to locSolVec_
double compute_residual() override
void diagonal_weights_set_value(int global_index, double value)
std::vector< double > locSolution_
subdomain solution
void rhs_set_values(int nrow, int *rows, double *vals) override
LinSys_BDDC(const Distribution *rows_ds, const bool swap_sign=false)
Bddcml_ * bddcml_
BDDCML wrapper.
void set_from_input(const Input::Record in_rec) override
Multilevel BDDC based linear system solver.
enum matrixTypeEnum MatrixType
static constexpr bool value
Wrappers for linear systems based on MPIAIJ and MATIS format.