8 #ifndef COMMON_LIBMESH_CODE_PETSC_MATRIX_OPERATIONS_H_
9 #define COMMON_LIBMESH_CODE_PETSC_MATRIX_OPERATIONS_H_
16 void lump_matrix( libMesh::PetscMatrix<libMesh::Number>& matrixInput,
17 libMesh::PetscMatrix<libMesh::Number>& matrixOutput);
20 libMesh::PetscMatrix<libMesh::Number>& matrixOutput);
23 libMesh::PetscVector<libMesh::Number>& vecOutput);
25 void print_matrix(libMesh::PetscMatrix<libMesh::Number>& CouplingTestMatrix);
27 void print_matrix_dim(libMesh::PetscMatrix<libMesh::Number>& CouplingTestMatrix,
bool bDetailed =
false);
29 void print_matrix_info(libMesh::PetscMatrix<libMesh::Number>& InputMatrix, std::ostream & os=libMesh::out);
33 void print_matrix_matlab(libMesh::PetscMatrix<libMesh::Number>& CouplingTestMatrix,
const std::string name_base);
36 libMesh::PetscVector<libMesh::Number>& b,
37 libMesh::PetscVector<libMesh::Number>& x,
41 libMesh::Mesh& IntersectionMesh,
42 libMesh::Real CouplingScale,
43 const std::string matrixtype,
47 const std::string& filename,
int dim = 1);
50 const std::string& filename);
53 const std::string& filename);
55 void write_PETSC_vector( Vec input_vec,
const std::string& filename,
int rank, MPI_Comm comm = PETSC_COMM_WORLD,
int dim = 1);
57 void read_PETSC_vector( Vec input_vec,
const std::string& filename, MPI_Comm comm = PETSC_COMM_WORLD);
59 void write_PETSC_matrix( Mat input_mat,
const std::string& filename,
int rank, MPI_Comm comm = PETSC_COMM_WORLD,
int dim = 1);
62 const std::string& filename,
int dim = 1);
64 void read_PETSC_matrix( Mat input_mat,
const std::string& filename, MPI_Comm comm = PETSC_COMM_WORLD);
67 const std::string& filename);
74 const std::string& filename_base,
int nb_of_vecs,
int dimension );
void check_coupling_matrix(libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, libMesh::Mesh &IntersectionMesh, libMesh::Real CouplingScale, const std::string matrixtype, int n_var=3)
void lump_matrix_and_invert(libMesh::PetscMatrix< libMesh::Number > &matrixInput, libMesh::PetscMatrix< libMesh::Number > &matrixOutput)
void print_matrix_col_line_sum(libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, const std::string name_base)
void write_PETSC_vector(libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename, int dim=1)
void create_PETSC_dense_matrix_from_vectors(const Vec *vecs_in, int nb_vecs, Mat &matrix_out)
void solve_linear_PETSC(libMesh::PetscMatrix< libMesh::Number > &A, libMesh::PetscVector< libMesh::Number > &b, libMesh::PetscVector< libMesh::Number > &x, KSP &ksp, PC &pc)
void attach_rigid_body_mode_vectors(libMesh::PetscMatrix< libMesh::Number > &mat_sys, const std::string &filename_base, int nb_of_vecs, int dimension)
void lump_matrix(libMesh::PetscMatrix< libMesh::Number > &matrixInput, libMesh::PetscMatrix< libMesh::Number > &matrixOutput)
void PETSC_MatMultScale_Bcast(Mat mat_seq, Vec vec_seq_in, Vec vec_seq_out, double a_const)
void PETSC_invert_dense_matrix(Mat &matrix_in, Mat &matrix_out)
void read_PETSC_matrix(Mat input_mat, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD)
void print_matrix_info(libMesh::PetscMatrix< libMesh::Number > &InputMatrix, std::ostream &os=libMesh::out)
void print_matrix_matlab(libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, const std::string name_base)
void write_PETSC_matrix_MATLAB(Mat input_mat, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD)
void print_matrix_dim(libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix, bool bDetailed=false)
void print_matrix(libMesh::PetscMatrix< libMesh::Number > &CouplingTestMatrix)
void read_PETSC_vector(libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename)
void write_PETSC_vector_MATLAB(Vec input_vec, const std::string &filename, MPI_Comm comm=PETSC_COMM_WORLD)
void print_PETSC_vector(libMesh::PetscVector< libMesh::Number > &input_vec, const std::string &filename)
void write_PETSC_matrix(Mat input_mat, const std::string &filename, int rank, MPI_Comm comm=PETSC_COMM_WORLD, int dim=1)