93 inline unsigned int size();
102 void finalize(MatAssemblyType assembly_type=MAT_FINAL_ASSEMBLY);
122 void view(std::ostream output_stream,
int * row_mapping = NULL,
int * col_mapping = NULL);
150 multiply_vec( Vector x, Vector y)
180 class LinSysDirect : public
LinSys
190 class LinSysImplicitSchur :
public LinSys
202 class LinSysExplicitSchur :
public LinSys
210 class LinSysJacobiCoupling :
public LinSys
LinSys * block(i, j) MatrixArray *matrix() virtual solve(Vector solution
virtual SolveInfo solve()=0
std::vector< std::vector< MatrixSimple * > > mat_array
MatrixArray vice konstruktoru pro ruzne slepovani MatrixSimple a jiz existujicich MatrixArray MatrixSimple * block(i_row, i_col) multiply_vec(Vector x
virtual void preallocate_values(int nrow, int *rows, int ncol, int *cols)=0
Distribution col_ds
Distribution of multiplied vector.
void mat_set_value(int row, int col, PetscScalar val)
Set one element of the system matrix.
virtual void start_allocation()=0
unsigned int size()
Get global system size.
SetValuesMode
possible states of the matrix
void set_symmetric(bool flag=true)
void multiply(Vec x, Vec y)
multiply PETSC vector: y=Ax
void view(std::ostream output_stream, int *row_mapping=NULL, int *col_mapping=NULL)
Output the matrix in the Matlab format possibly with given renumbering of rows/cols.
void finalize(MatAssemblyType assembly_type=MAT_FINAL_ASSEMBLY)
bool positive_definite
Flag for positive definite system.
void multiply_add(Vec x, Vec b, Vec y)
multiply vector and ad onother one: y=Ax+b
Distribution & get_row_ds()
void mat_set_values(int nrow, int *rows, int ncol, int *cols, PetscScalar *vals)
Set full rectangular submatrix of the system matrix.
const Mat & get_matrix()
Get matrix. SHOULD NOT BE USED !!!
virtual void view_local_matrix()=0
SetValuesMode status
Set value status of the linear system.
void multiply_mat(...)
multiply matrix .. has to deal with preallocation of result and reuse of structure
virtual void preallocate_matrix()=0
bool is_positive_definite()
void set_positive_definite(bool flag=true)
MatrixSimple(unsigned int loc_row_size, unsigned int col_size)
Construct a parallel system with given local size.
void start_add_assembly()
Mat matrix
Petsc matrix of the problem.
Distribution & get_col_ds()
Distribution row_ds
Distribution of continuous blocks of system rows among the processors.
bool symmetric
Flag for the symmetric system.
void start_insert_assembly()
class MatrixArray VecArray