|
Flow123d
DF_mechanic_bench-d9cdce8
|
#include <linsys_PERMON.hh>


Classes | |
| struct | PetscScalar2Double_ |
Public Types | |
| typedef LinSys | FactoryBaseType |
Public Types inherited from LinSys_PETSC | |
| typedef LinSys | FactoryBaseType |
Public Types inherited from LinSys | |
| enum | SetValuesMode { INSERT =INSERT_VALUES , ADD =ADD_VALUES , ALLOCATE , DONE , NONE } |
Public Member Functions | |
| LinSys_PERMON (const Distribution *rows_ds, const std::string ¶ms="") | |
| LinSys_PERMON (LinSys_PERMON &other) | |
| void | set_inequality (Mat matrix_ineq, Vec ineq) |
| LinSys_PETSC::SolveInfo | solve () override |
| double | get_absolute_accuracy () override |
| void | view (string text="") override |
| double | get_solution_precision () override |
| double | compute_residual () override |
| ~LinSys_PERMON () | |
Public Member Functions inherited from LinSys_PETSC | |
| LinSys_PETSC (const Distribution *rows_ds, const std::string ¶ms="") | |
| LinSys_PETSC (LinSys_PETSC &other) | |
| void | set_tolerances (double r_tol, double a_tol, double d_tol, unsigned int max_it) override |
| const Distribution * | get_ds () |
| const Mat * | get_matrix () override |
| const Vec * | get_rhs () override |
| PetscErrorCode | set_matrix (Mat &matrix, MatStructure str) override |
| PetscErrorCode | set_rhs (Vec &rhs) override |
| PetscErrorCode | mat_zero_entries () override |
| PetscErrorCode | rhs_zero_entries () override |
| void | start_allocation () override |
| void | start_add_assembly () override |
| void | start_insert_assembly () override |
| void | mat_set_values (int nrow, int *rows, int ncol, int *cols, double *vals) override |
| void | rhs_set_values (int nrow, int *rows, double *vals) override |
| void | preallocate_values (int nrow, int *rows, int ncol, int *cols) |
| void | preallocate_matrix () |
| void | finish_assembly () override |
| void | finish_assembly (MatAssemblyType assembly_type) |
| void | apply_constrains (double scalar=1.) override |
| void | set_initial_guess_nonzero (bool set_nonzero=true) |
| LinSys::SolveInfo | solve () override |
| double | get_absolute_accuracy () override |
| void | view (string text="") override |
| void | set_from_input (const Input::Record in_rec) override |
| double | get_solution_precision () override |
| double | compute_residual () override |
| ~LinSys_PETSC () | |
Public Member Functions inherited from LinSys | |
| LinSys (const Distribution *rows_ds) | |
| LinSys (LinSys &other) | |
| unsigned int | size () |
| unsigned int | vec_lsize () |
| void | set_matrix_changed () |
| void | set_rhs_changed () |
| bool | is_matrix_changed () |
| bool | is_rhs_changed () |
| const Vec & | get_solution () |
| void | set_solution (Vec sol_vec) |
| void | set_solution (double *sol_array) |
| void | set_solution () |
| double * | get_solution_array () |
| void | mat_set_value (int row, int col, double val) |
| void | rhs_set_value (int row, double val) |
| void | set_values (int nrow, int *rows, int ncol, int *cols, PetscScalar *mat_vals, PetscScalar *rhs_vals) |
| Set values in the system matrix and values in the right-hand side vector on corresponding rows. More... | |
| void | set_local_system (LocalSystem &local) |
| void | set_local_system (LocalSystem &local, const std::vector< LongIdx > &local_to_global_map) |
| void | set_values (std::vector< int > &row_dofs, std::vector< int > &col_dofs, const arma::mat &matrix, const arma::vec &rhs, const arma::vec &row_solution, const arma::vec &col_solution) |
| void | add_constraint (int row, double value) |
| double | get_residual_norm () |
| double | get_relative_accuracy () |
| void | set_symmetric (bool flag=true) |
| bool | is_symmetric () |
| void | set_positive_definite (bool flag=true) |
| void | set_negative_definite (bool flag=true) |
| bool | is_positive_definite () |
| bool | is_negative_definite () |
| bool | is_new () |
| bool | is_preallocated () |
| void | set_spd_via_symmetric_general (bool flag=true) |
| bool | is_spd_via_symmetric_general () |
| virtual | ~LinSys () |
Static Public Member Functions | |
| static const Input::Type::Record & | get_input_type () |
Static Public Member Functions inherited from LinSys_PETSC | |
| static const Input::Type::Record & | get_input_type () |
Static Public Member Functions inherited from LinSys | |
| static Input::Type::Abstract & | get_input_type () |
Protected Attributes | |
| Mat | matrix_ineq_ |
| PETSc matrix of inequality constraint. More... | |
| Vec | ineq_ |
| PETSc vector of inequality constraint. More... | |
| QP | system |
| QPS | solver |
Protected Attributes inherited from LinSys_PETSC | |
| std::string | params_ |
| command-line-like options for the PETSc solver More... | |
| bool | init_guess_nonzero |
| flag for starting from nonzero guess More... | |
| Mat | matrix_ |
| Petsc matrix of the problem. More... | |
| Vec | rhs_ |
| PETSc vector constructed with vx array. More... | |
| Vec | residual_ |
| double * | v_rhs_ |
| local RHS array pointing to Vec rhs_ More... | |
| Vec | on_vec_ |
| Vectors for counting non-zero entries in diagonal block. More... | |
| Vec | off_vec_ |
| Vectors for counting non-zero entries in off-diagonal block. More... | |
| double | solution_precision_ |
| KSP | system |
| KSPConvergedReason | reason |
Protected Attributes inherited from LinSys | |
| double | r_tol_ |
| relative tolerance of linear solver More... | |
| double | a_tol_ |
| absolute tolerance of linear solver More... | |
| double | d_tol_ |
| tolerance for divergence of linear solver More... | |
| unsigned int | max_it_ |
| maximum number of iterations of linear solver More... | |
| MPI_Comm | comm_ |
| SetValuesMode | status_ |
| Set value status of the linear system. More... | |
| const unsigned | lsize_ |
| local number of matrix rows (non-overlapping division of rows) More... | |
| unsigned | size_ |
| global number of matrix rows, i.e. problem size More... | |
| const Distribution * | rows_ds_ |
| final distribution of rows of MH matrix More... | |
| bool | symmetric_ |
| bool | positive_definite_ |
| bool | negative_definite_ |
| bool | spd_via_symmetric_general_ |
| bool | matrix_changed_ |
| true if the matrix was changed since the last solve More... | |
| bool | rhs_changed_ |
| true if the right hand side was changed since the last solve More... | |
| Vec | solution_ |
| PETSc vector constructed with vb array. More... | |
| double * | v_solution_ |
| local solution array pointing into Vec solution_ More... | |
| bool | own_vec_ |
| Indicates if the solution vector has been allocated by this class. More... | |
| bool | own_solution_ |
| Indicates if the solution array has been allocated by this class. More... | |
| double | residual_norm_ |
| local solution array pointing into Vec solution_ More... | |
| ConstraintVec_ | constraints_ |
| std::vector< double > | globalSolution_ |
| global solution in numbering for linear system More... | |
| Input::Record | in_rec_ |
Private Member Functions | |
| template<typename T > | |
| T * | makePetscPointer_ (std::vector< T > &array) |
Static Private Attributes | |
| static const int | registrar = LinSys_PERMON::get_input_type().size() |
| Registrar of class to factory. More... | |
Additional Inherited Members | |
Protected Types inherited from LinSys | |
| typedef std::pair< unsigned, double > | Constraint_ |
| typedef std::vector< Constraint_ > | ConstraintVec_ |
Static Protected Attributes inherited from LinSys | |
| static constexpr double | default_r_tol_ = 1e-7 |
| static constexpr double | default_a_tol_ = 1e-11 |
| static constexpr double | default_d_tol_ = 10000 |
| static constexpr unsigned int | default_max_it_ = 1000 |
Definition at line 39 of file linsys_PERMON.hh.
| typedef LinSys LinSys_PERMON::FactoryBaseType |
Definition at line 43 of file linsys_PERMON.hh.
| LinSys_PERMON::LinSys_PERMON | ( | const Distribution * | rows_ds, |
| const std::string & | params = "" |
||
| ) |
Definition at line 61 of file linsys_PERMON.cc.
| LinSys_PERMON::LinSys_PERMON | ( | LinSys_PERMON & | other | ) |
Copy constructor.
Definition at line 68 of file linsys_PERMON.cc.
| LinSys_PERMON::~LinSys_PERMON | ( | ) |
Definition at line 228 of file linsys_PERMON.cc.
|
overridevirtual |
Explicitly compute residual and its norm for current solution.
Implements LinSys.
Definition at line 242 of file linsys_PERMON.cc.
|
inlineoverridevirtual |
Returns information on absolute solver accuracy
Reimplemented from LinSys.
Definition at line 61 of file linsys_PERMON.hh.
|
static |
Definition at line 32 of file linsys_PERMON.cc.
|
overridevirtual |
|
inlineprivate |
Definition at line 79 of file linsys_PERMON.hh.
| void LinSys_PERMON::set_inequality | ( | Mat | matrix_ineq, |
| Vec | ineq | ||
| ) |
Definition at line 75 of file linsys_PERMON.cc.
|
overridevirtual |
Solve the system and return convergence reason.
Implements LinSys.
Definition at line 82 of file linsys_PERMON.cc.
|
overridevirtual |
Output the system in the Matlab format possibly with given ordering. Rather we shoud provide output operator <<, since it is more flexible.
Reimplemented from LinSys.
Definition at line 174 of file linsys_PERMON.cc.
|
protected |
PETSc vector of inequality constraint.
Definition at line 97 of file linsys_PERMON.hh.
|
protected |
PETSc matrix of inequality constraint.
Definition at line 96 of file linsys_PERMON.hh.
|
staticprivate |
Registrar of class to factory.
Definition at line 75 of file linsys_PERMON.hh.
|
protected |
Definition at line 100 of file linsys_PERMON.hh.
|
protected |
Definition at line 99 of file linsys_PERMON.hh.