18#ifndef LIBMESH_PETSC_MATRIX_SHELL_MATRIX_H
19#define LIBMESH_PETSC_MATRIX_SHELL_MATRIX_H
21#include "libmesh/libmesh_config.h"
23#ifdef LIBMESH_HAVE_PETSC
25#include "libmesh/petsc_matrix_base.h"
26#include "libmesh/petsc_shell_matrix.h"
This class provides a nice interface to the PETSc C-based data structures for parallel,...
virtual numeric_index_type n() const override
virtual numeric_index_type m() const override
This class allows to use a PETSc shell matrix as a PetscMatrix.
PetscMatrixShellMatrix(const Parallel::Communicator &comm_in)
virtual void init(const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type=30, const numeric_index_type=10, const numeric_index_type blocksize=1) override
Initialize SparseMatrix with the specified sizes.
virtual SparseMatrix< T > & operator=(const SparseMatrix< T > &) override
This looks like a copy assignment operator, but note that, unlike normal copy assignment operators,...
virtual void init(ParallelType=PARALLEL) override
Initialize this matrix using the sparsity structure computed by dof_map.
virtual bool require_sparsity_pattern() const override
const bool _omit_constrained_dofs
Whether to omit constrained degrees of freedom.
bool _is_initialized
Flag indicating whether or not the matrix has been initialized.
The libMesh namespace provides an interface to certain functionality in the library.
ParallelType
Defines an enum for parallel data structure types.
dof_id_type numeric_index_type