Go to the documentation of this file.
   20 #ifndef LIBMESH_TRILINOS_EPETRA_MATRIX_H 
   21 #define LIBMESH_TRILINOS_EPETRA_MATRIX_H 
   23 #include "libmesh/libmesh_common.h" 
   25 #ifdef LIBMESH_TRILINOS_HAVE_EPETRA 
   28 #include "libmesh/ignore_warnings.h" 
   29 #include <Epetra_FECrsMatrix.h> 
   30 #include <Epetra_Map.h> 
   31 #include <Epetra_MpiComm.h> 
   34 #ifdef LIBMESH_TRILINOS_HAVE_EPETRAEXT 
   35 #  include <EpetraExt_MatrixMatrix.h> 
   37 #include "libmesh/restore_warnings.h" 
   40 #include "libmesh/sparse_matrix.h" 
   50 template <
typename T> 
class DenseMatrix;
 
   87                 const Parallel::Communicator & 
comm);
 
  121   virtual void init () 
override;
 
  123   virtual void clear () 
override;
 
  125   virtual void zero () 
override;
 
  127   virtual void close () 
override;
 
  139                     const T 
value) 
override;
 
  143                     const T 
value) 
override;
 
  146                            const std::vector<numeric_index_type> & rows,
 
  147                            const std::vector<numeric_index_type> & cols) 
override;
 
  150                            const std::vector<numeric_index_type> & dof_indices) 
override;
 
  171   virtual bool closed() 
const override;
 
  229 #endif // LIBMESH_TRILINOS_HAVE_EPETRA 
  230 #endif // LIBMESH_TRILINOS_EPETRA_MATRIX_H 
  
virtual void init() override
Initialize this matrix using the sparsity structure computed by dof_map.
 
Epetra_FECrsMatrix * _mat
Actual Epetra datatype to hold matrix entries.
 
const Epetra_FECrsMatrix * mat() const
 
The libMesh namespace provides an interface to certain functionality in the library.
 
virtual void set(const numeric_index_type i, const numeric_index_type j, const T value) override
Set the element (i,j) to value.
 
const Parallel::Communicator & comm() const
 
Defines a dense matrix for use in Finite Element-type computations.
 
virtual numeric_index_type row_stop() const override
 
virtual Real linfty_norm() const override
 
virtual void get_transpose(SparseMatrix< T > &dest) const override
Copies the transpose of the matrix into dest, which may be *this.
 
Provides a uniform interface to vector storage schemes for different linear algebra libraries.
 
Epetra_Map * _map
Holds the distributed Map.
 
virtual void close() override
Calls the SparseMatrix's internal assembly routines, ensuring that the values are consistent across p...
 
EpetraMatrix(const Parallel::Communicator &comm)
Constructor; initializes the matrix to be empty, without any structure, i.e.
 
This class provides a nice interface to the Epetra data structures for parallel, sparse matrices.
 
bool _use_transpose
Epetra has no GetUseTranspose so we need to keep track of whether we're transposed manually.
 
virtual numeric_index_type row_start() const override
 
virtual numeric_index_type m() const override
 
virtual bool closed() const override
 
Epetra_FECrsMatrix * mat()
 
dof_id_type numeric_index_type
 
virtual void zero() override
Set all entries to 0.
 
virtual void update_sparsity_pattern(const SparsityPattern::Graph &) override
Updates the matrix sparsity pattern.
 
Epetra_CrsGraph * _graph
Holds the sparsity pattern.
 
virtual numeric_index_type n() const override
 
virtual bool need_full_sparsity_pattern() const override
The EpetraMatrix needs the full sparsity pattern.
 
virtual void add(const numeric_index_type i, const numeric_index_type j, const T value) override
Add value to the element (i,j).
 
virtual void clear() override
Restores the SparseMatrix<T> to a pristine state.
 
virtual void add_matrix(const DenseMatrix< T > &dm, const std::vector< numeric_index_type > &rows, const std::vector< numeric_index_type > &cols) override
Add the full matrix dm to the SparseMatrix.
 
virtual void get_diagonal(NumericVector< T > &dest) const override
Copies the diagonal part of the matrix into dest.
 
void swap(EpetraMatrix< T > &)
Swaps the internal data pointers, no actual values are swapped.
 
EpetraMatrix & operator=(const EpetraMatrix &)=delete
 
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
virtual void print_personal(std::ostream &os=libMesh::out) const override
Print the contents of the matrix to the screen in a package-personalized style, if available.
 
virtual Real l1_norm() const override
 
bool _destroy_mat_on_exit
This boolean value should only be set to false for the constructor which takes an Epetra_FECrsMatrix ...
 
virtual T operator()(const numeric_index_type i, const numeric_index_type j) const override