Flow123d
JS_before_hm-2212-gb8d94e0c1
|
Go to the documentation of this file.
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;
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;
107 return numeric_limits<double>::max();
Vec locSolVec_
local solution PETSc vector - sequential
std::vector< int > isngn_
indices of subdomain nodes in global numbering
void mat_set_values(int nrow, int *rows, int ncol, int *cols, double *vals) override
void set_tolerances(double r_tol, double a_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
bool use_adaptive_bddc_
should adaptive BDDC be used?
static const Input::Type::Record & get_input_type()
VecScatter VSpetscToSubScatter_
scatter from solution_ to locSolVec_
static constexpr bool value
Wrappers for linear systems based on MPIAIJ and MATIS format.
la::BddcmlWrapper::MatrixType BDDCMatrixType
int bddcml_verbosity_level_
void finish_assembly() override
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)
Multilevel BDDC based linear system solver.
void rhs_set_values(int nrow, int *rows, double *vals) override
la::BddcmlWrapper Bddcml_
enum matrixTypeEnum MatrixType
std::vector< double > locSolution_
subdomain solution
double compute_residual() override
double get_solution_precision() override
PetscErrorCode rhs_zero_entries() override
void set_from_input(const Input::Record in_rec) override
static const int registrar
Registrar of class to factory.
int max_nondecr_it_
parameters expected from input file:
LinSys::SolveInfo solve() override
const bool swap_sign_
swap sign of matrix and rhs entries, e.g. to make the matrix SPD
Bddcml_ * bddcml_
BDDCML wrapper.
PetscErrorCode mat_zero_entries() override
LinSys_BDDC(const Distribution *rows_ds, const bool swap_sign=false)
void apply_constrains(double scalar=1.) override
void print_matrix(std::ostream &out)
void diagonal_weights_set_value(int global_index, double value)