|
Flow123d
jenkins-Flow123d-windows-release-multijob-285
|
#include <linsys_PETSC.hh>


Classes | |
| struct | PetscScalar2Double_ |
Public Member Functions | |
| LinSys_PETSC (const Distribution *rows_ds) | |
| LinSys_PETSC (LinSys_PETSC &other) | |
| const Distribution * | get_ds () |
| const Mat * | get_matrix () |
| const Vec * | get_rhs () |
| PetscErrorCode | set_matrix (Mat &matrix, MatStructure str) |
| PetscErrorCode | set_rhs (Vec &rhs) |
| PetscErrorCode | mat_zero_entries () |
| PetscErrorCode | rhs_zero_entries () |
| void | start_allocation () |
| void | start_add_assembly () |
| void | start_insert_assembly () |
| void | mat_set_values (int nrow, int *rows, int ncol, int *cols, double *vals) |
| void | rhs_set_values (int nrow, int *rows, double *vals) |
| void | preallocate_values (int nrow, int *rows, int ncol, int *cols) |
| void | preallocate_matrix () |
| void | finish_assembly () |
| void | finish_assembly (MatAssemblyType assembly_type) |
| void | apply_constrains (double scalar=1.) |
| void | set_initial_guess_nonzero (bool set_nonzero=true) |
| int | solve () |
| double | get_absolute_accuracy () |
| void | view () |
| void | set_from_input (const Input::Record in_rec) |
| double | get_solution_precision () |
| ~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 (double *sol_array) |
| 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_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 Attributes | |
| static Input::Type::Record | input_type |
Static Public Attributes inherited from LinSys | |
| static Input::Type::AbstractRecord | input_type |
Protected Attributes | |
| 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... | |
| 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_ |
Protected Attributes inherited from LinSys | |
| double | r_tol_ |
| double | a_tol_ |
| int | max_it_ |
| 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_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) |
Additional Inherited Members | |
Public Types inherited from LinSys | |
| enum | SetValuesMode { INSERT =INSERT_VALUES, ADD =ADD_VALUES, ALLOCATE, DONE, NONE } |
Protected Types inherited from LinSys | |
| typedef std::pair< unsigned, double > | Constraint_ |
| typedef std::vector< Constraint_ > | ConstraintVec_ |
Definition at line 42 of file linsys_PETSC.hh.
| LinSys_PETSC::LinSys_PETSC | ( | const Distribution * | rows_ds | ) |
Definition at line 50 of file linsys_PETSC.cc.
| LinSys_PETSC::LinSys_PETSC | ( | LinSys_PETSC & | other | ) |
Copy constructor.
Definition at line 69 of file linsys_PETSC.cc.
| LinSys_PETSC::~LinSys_PETSC | ( | ) |
Definition at line 401 of file linsys_PETSC.cc.
|
virtual |
Apply constrains to assembled matrix. Constrains are given by pairs: global row index, value. i.e. typedef pair<unsigned int, double> Constrain;
What is th meaning of ( const double factor ) form Cambridge code?
Implements LinSys.
Definition at line 248 of file linsys_PETSC.cc.
|
virtual |
Finish assembly of the whole system. For PETSC this should call MatEndAssembly with MAT_FINAL_ASSEMBLY
Implements LinSys.
Definition at line 223 of file linsys_PETSC.cc.

| void LinSys_PETSC::finish_assembly | ( | MatAssemblyType | assembly_type | ) |
Definition at line 229 of file linsys_PETSC.cc.
|
inlinevirtual |
Returns information on absolute solver accuracy
Reimplemented from LinSys.
Definition at line 124 of file linsys_PETSC.hh.
|
inline |
Returns whole Distribution class for distribution of the solution.
Definition at line 58 of file linsys_PETSC.hh.
|
inlinevirtual |
Returns PETSC matrix (only for PETSC solvers)
If matrix is changed, method set_matrix_changed() must be called. Example: MatDiagonalSet(schur->get_matrix(), new_diagonal, ADD_VALUES); schur->set_matrix_changed();
Reimplemented from LinSys.
Definition at line 63 of file linsys_PETSC.hh.

|
inlinevirtual |
Returns RHS vector (only for PETSC solvers)
If vector is changed, method set_rhs_changed() must be called. Example: VecScale(schur->get_rhs(), -1.0); schur->set_rhs_changed();
Reimplemented from LinSys.
Definition at line 68 of file linsys_PETSC.hh.

|
virtual |
Get precision of solving
Implements LinSys.
Reimplemented in SchurComplement.
Definition at line 424 of file linsys_PETSC.cc.

|
inlineprivate |
|
virtual |
Assembly full rectangular submatrix into the system matrix. Should be virtual, implemented differently in particular solvers.
Implements LinSys.
Definition at line 123 of file linsys_PETSC.cc.
|
inlinevirtual |
Clears entries of the matrix
Reimplemented from LinSys.
Definition at line 85 of file linsys_PETSC.hh.
| void LinSys_PETSC::preallocate_matrix | ( | ) |
| void LinSys_PETSC::preallocate_values | ( | int | nrow, |
| int * | rows, | ||
| int | ncol, | ||
| int * | cols | ||
| ) |
|
virtual |
Set values of the system right-hand side. Should be virtual, implemented differently in particular solvers.
Implements LinSys.
Definition at line 142 of file linsys_PETSC.cc.
|
inlinevirtual |
Clears entries of the right-hand side
Reimplemented from LinSys.
Definition at line 91 of file linsys_PETSC.hh.
|
virtual |
Sets specific parameters of LinSys_PETSC defined by user in input file and used to calculate
Reimplemented from LinSys.
Definition at line 411 of file linsys_PETSC.cc.

| void LinSys_PETSC::set_initial_guess_nonzero | ( | bool | set_nonzero = true | ) |
Definition at line 293 of file linsys_PETSC.cc.
|
inlinevirtual |
Sets PETSC matrix (only for PETSC solvers)
Reimplemented from LinSys.
Definition at line 73 of file linsys_PETSC.hh.
|
inlinevirtual |
Sets RHS vector (only for PETSC solvers)
Reimplemented from LinSys.
Definition at line 79 of file linsys_PETSC.hh.
|
virtual |
Solve the system and return convergence reason.
Implements LinSys.
Reimplemented in SchurComplement.
Definition at line 299 of file linsys_PETSC.cc.

|
virtual |
Switch linear system into adding assembly. (the only one supported by triplets ??)
Reimplemented from LinSys.
Definition at line 87 of file linsys_PETSC.cc.
|
virtual |
Switch linear system into allocating assembly. (only for PETSC_MPIAIJ_preallocate_by_assembly)
Reimplemented from LinSys.
Definition at line 78 of file linsys_PETSC.cc.
|
virtual |
Switch linear system into insert assembly. (not currently used)
Reimplemented from LinSys.
Definition at line 105 of file linsys_PETSC.cc.
|
virtual |
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 375 of file linsys_PETSC.cc.
|
protected |
flag for starting from nonzero guess
Definition at line 161 of file linsys_PETSC.hh.
|
static |
Definition at line 46 of file linsys_PETSC.hh.
|
protected |
Petsc matrix of the problem.
Definition at line 163 of file linsys_PETSC.hh.
|
protected |
Vectors for counting non-zero entries in off-diagonal block.
Definition at line 169 of file linsys_PETSC.hh.
|
protected |
Vectors for counting non-zero entries in diagonal block.
Definition at line 168 of file linsys_PETSC.hh.
|
protected |
command-line-like options for the PETSc solver
Definition at line 159 of file linsys_PETSC.hh.
|
protected |
PETSc vector constructed with vx array.
Definition at line 164 of file linsys_PETSC.hh.
|
protected |
Definition at line 171 of file linsys_PETSC.hh.
|
protected |
local RHS array pointing to Vec rhs_
Definition at line 166 of file linsys_PETSC.hh.
1.8.9.1