87 MatrixSimple(
unsigned int loc_row_size,
unsigned int col_size);
106 inline unsigned int size();
115 void finalize(MatAssemblyType assembly_type=MAT_FINAL_ASSEMBLY);
123 void mat_set_values(
int nrow,
int *rows,
int ncol,
int *cols,PetscScalar *vals);
135 void view(std::ostream output_stream,
int * row_mapping = NULL,
int * col_mapping = NULL);
163 multiply_vec( Vector x, Vector y)
186 virtual solve( Vector solution, Vector RHS);
193 class LinSysDirect : public
LinSys
203 class LinSysImplicitSchur :
public LinSys
215 class LinSysExplicitSchur : public
LinSys
223 class LinSysJacobiCoupling :
public LinSys
SetValuesMode status
Set value status of the linear system.
void set_positive_definite(bool flag=true)
void finalize(MatAssemblyType assembly_type=MAT_FINAL_ASSEMBLY)
virtual void view_local_matrix()=0
bool symmetric
Flag for the symmetric system.
Mat matrix
Petsc matrix of the problem.
Distribution row_ds
Distribution of continuous blocks of system rows among the processors.
bool is_positive_definite()
void start_insert_assembly()
MatrixSimple(unsigned int loc_row_size, unsigned int col_size)
Construct a parallel system with given local size.
std::vector< std::vector< MatrixSimple * > > mat_array
class MatrixArray VecArray
const Mat & get_matrix()
Get matrix. SHOULD NOT BE USED !!!
void start_add_assembly()
void multiply_mat(...)
multiply matrix .. has to deal with preallocation of result and reuse of structure ...
Distribution col_ds
Distribution of multiplied vector.
void set_symmetric(bool flag=true)
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.
void multiply_add(Vec x, Vec b, Vec y)
multiply vector and ad onother one: y=Ax+b
void mat_set_values(int nrow, int *rows, int ncol, int *cols, PetscScalar *vals)
Set full rectangular submatrix of the system matrix.
Distribution & get_col_ds()
SetValuesMode
possible states of the matrix
virtual void preallocate_matrix()=0
Abstract linear system class.
Distribution & get_row_ds()
bool positive_definite
Flag for positive definite system.
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 multiply(Vec x, Vec y)
multiply PETSC vector: y=Ax
virtual void preallocate_values(int nrow, int *rows, int ncol, int *cols)=0