#include <trilinos_epetra_matrix.h>
EpetraMatrix ()
~EpetraMatrix ()
bool need_full_sparsity_pattern () const
void update_sparsity_pattern (const SparsityPattern::Graph &)
void init (const unsigned int m, const unsigned int n, const unsigned int m_l, const unsigned int n_l, const unsigned int nnz=30, const unsigned int noz=10)
void init ()
void clear ()
void zero ()
void close () const
unsigned int m () const
unsigned int n () const
unsigned int row_start () const
unsigned int row_stop () const
void set (const unsigned int i, const unsigned int j, const T value)
void add (const unsigned int i, const unsigned int j, const T value)
void add_matrix (const DenseMatrix< T > &dm, const std::vector< unsigned int > &rows, const std::vector< unsigned int > &cols)
void add_matrix (const DenseMatrix< T > &dm, const std::vector< unsigned int > &dof_indices)
void add (const T a, SparseMatrix< T > &X)
T operator() (const unsigned int i, const unsigned int j) const
Real l1_norm () const
Real linfty_norm () const
bool closed () const
void print_personal (std::ostream &os=std::cout) const
void print_matlab (const std::string name='NULL') const
void get_diagonal (NumericVector< T > &dest) const
virtual void get_transpose (SparseMatrix< T > &dest) const
void swap (EpetraMatrix< T > &)
Epetra_FECrsMatrix * mat ()
virtual bool initialized () const
void attach_dof_map (const DofMap &dof_map)
virtual void zero_rows (std::vector< int > &rows, T diag_value=0.0)
void print (std::ostream &os=std::cout) const
template<> void print (std::ostream &os) const
virtual void create_submatrix (SparseMatrix< T > &submatrix, const std::vector< unsigned int > &rows, const std::vector< unsigned int > &cols) const
virtual void reinit_submatrix (SparseMatrix< T > &submatrix, const std::vector< unsigned int > &rows, const std::vector< unsigned int > &cols) const
void vector_mult (NumericVector< T > &dest, const NumericVector< T > &arg) const
void vector_mult_add (NumericVector< T > &dest, const NumericVector< T > &arg) const
static AutoPtr< SparseMatrix< T > > build (const SolverPackage solver_package=libMesh::default_solver_package())
static std::string get_info ()
static void print_info ()
static unsigned int n_objects ()
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > Counts
virtual void _get_submatrix (SparseMatrix< T > &, const std::vector< unsigned int > &, const std::vector< unsigned int > &, const bool) const
void increment_constructor_count (const std::string &name)
void increment_destructor_count (const std::string &name)
DofMap const * _dof_map
bool _is_initialized
static Counts _counts
static Threads::atomic< unsigned int > _n_objects
static Threads::spin_mutex _mutex
Epetra_FECrsMatrix * _mat
Epetra_Map * _map
Epetra_CrsGraph * _graph
bool _destroy_mat_on_exit
template<typename U > std::ostream & operator<< (std::ostream &os, const SparseMatrix< U > &m)
Author:
Definition at line 54 of file trilinos_epetra_matrix.h.
Definition at line 105 of file reference_counter.h.
You have to initialize the matrix before usage with init(...).
Definition at line 360 of file trilinos_epetra_matrix.h.
: _destroy_mat_on_exit(true)
{}
Definition at line 381 of file trilinos_epetra_matrix.h.
{
this->clear();
}
Reimplemented in PetscMatrix< T >.
Definition at line 382 of file sparse_matrix.h.
Referenced by SparseMatrix< Number >::create_submatrix(), and SparseMatrix< Number >::reinit_submatrix().
{
std::cerr << 'Error! This function is not yet implemented in the base class!'
<< std::endl;
libmesh_error();
}
Implements SparseMatrix< T >.
Definition at line 469 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
int
epetra_i = static_cast<int>(i),
epetra_j = static_cast<int>(j);
T epetra_value = value;
_mat->SumIntoGlobalValues (epetra_i, 1, &epetra_value, &epetra_j);
}
Implements SparseMatrix< T >.
Definition at line 498 of file trilinos_epetra_matrix.h.
References libMesh::initialized(), SparseMatrix< T >::m(), and SparseMatrix< T >::n().
{
libmesh_assert (this->initialized());
// sanity check. but this cannot avoid
// crash due to incompatible sparsity structure...
libmesh_assert (this->m() == X_in.m());
libmesh_assert (this->n() == X_in.n());
libmesh_not_implemented();
// PetscScalar a = static_cast<PetscScalar> (a_in);
// EpetraMatrix<T>* X = dynamic_cast<EpetraMatrix<T>*> (&X_in);
// libmesh_assert (X != NULL);
// int ierr=0;
// // the matrix from which we copy the values has to be assembled/closed
// X->close ();
// // 2.2.x & earlier style
// #if PETSC_VERSION_LESS_THAN(2,3,0)
// ierr = MatAXPY(&a, X->_mat, _mat, SAME_NONZERO_PATTERN);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// // 2.3.x & newer
// #else
// ierr = MatAXPY(_mat, a, X->_mat, DIFFERENT_NONZERO_PATTERN);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// #endif
}
Implements SparseMatrix< T >.
Definition at line 301 of file trilinos_epetra_matrix.C.
References DenseMatrix< T >::get_values(), libMesh::initialized(), DenseMatrixBase< T >::m(), and DenseMatrixBase< T >::n().
{
libmesh_assert (this->initialized());
const unsigned int m = dm.m();
const unsigned int n = dm.n();
libmesh_assert (rows.size() == m);
libmesh_assert (cols.size() == n);
_mat->SumIntoGlobalValues(m, (int *)&rows[0], n, (int *)&cols[0], &dm.get_values()[0]);
}
Implements SparseMatrix< T >.
Definition at line 488 of file trilinos_epetra_matrix.h.
{
this->add_matrix (dm, dof_indices, dof_indices);
}
Definition at line 100 of file sparse_matrix.h.
Referenced by DofMap::attach_matrix().
{ _dof_map = &dof_map; }
Definition at line 40 of file sparse_matrix.C.
References LASPACK_SOLVERS, libMeshEnums::PETSC_SOLVERS, and TRILINOS_SOLVERS.
{
// Build the appropriate vector
switch (solver_package)
{
#ifdef LIBMESH_HAVE_LASPACK
case LASPACK_SOLVERS:
{
AutoPtr<SparseMatrix<T> > ap(new LaspackMatrix<T>);
return ap;
}
#endif
#ifdef LIBMESH_HAVE_PETSC
case PETSC_SOLVERS:
{
AutoPtr<SparseMatrix<T> > ap(new PetscMatrix<T>);
return ap;
}
#endif
#ifdef LIBMESH_HAVE_TRILINOS
case TRILINOS_SOLVERS:
{
AutoPtr<SparseMatrix<T> > ap(new EpetraMatrix<T>);
return ap;
}
#endif
default:
std::cerr << 'ERROR: Unrecognized solver package: '
<< solver_package
<< std::endl;
libmesh_error();
}
AutoPtr<SparseMatrix<T> > ap(NULL);
return ap;
}
Implements SparseMatrix< T >.
Definition at line 201 of file trilinos_epetra_matrix.C.
References libMesh::libMeshPrivateData::_is_initialized, and libMesh::initialized().
{
// delete _mat;
// delete _map;
this->_is_initialized = false;
libmesh_assert (!this->initialized());
}
Implements SparseMatrix< T >.
Definition at line 390 of file trilinos_epetra_matrix.h.
Referenced by AztecLinearSolver< T >::solve().
{
libmesh_assert (_mat != NULL);
_mat->GlobalAssemble();
}
Implements SparseMatrix< T >.
Definition at line 574 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (this->_mat != NULL);
return this->_mat->Filled();
}
Definition at line 325 of file sparse_matrix.h.
{
this->_get_submatrix(submatrix,
rows,
cols,
false); // false means DO NOT REUSE submatrix
}
Implements SparseMatrix< T >.
Definition at line 366 of file trilinos_epetra_matrix.C.
References EpetraVector< T >::vec().
{
// Convert vector to EpetraVector.
EpetraVector<T>* epetra_dest = libmesh_cast_ptr<EpetraVector<T>*>(&dest);
// Call Epetra function.
_mat->ExtractDiagonalCopy(*(epetra_dest->vec()));
}
Definition at line 45 of file reference_counter.C.
References ReferenceCounter::_counts, and Quality::name().
Referenced by ReferenceCounter::print_info().
{
#if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
std::ostringstream out;
out << '
<< ' ----------------------------------------------------------------------------
<< '| Reference count information |
<< ' ---------------------------------------------------------------------------- ;
for (Counts::iterator it = _counts.begin();
it != _counts.end(); ++it)
{
const std::string name(it->first);
const unsigned int creations = it->second.first;
const unsigned int destructions = it->second.second;
out << '| ' << name << ' reference count information:
<< '| Creations: ' << creations << '
<< '| Destructions: ' << destructions << ';
}
out << ' ---------------------------------------------------------------------------- ;
return out.str();
#else
return '';
#endif
}
Implements SparseMatrix< T >.
Definition at line 378 of file trilinos_epetra_matrix.C.
{
libmesh_not_implemented();
}
Definition at line 149 of file reference_counter.h.
References ReferenceCounter::_counts, Quality::name(), and Threads::spin_mtx.
Referenced by ReferenceCountedObject< Value >::ReferenceCountedObject().
{
Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
std::pair<unsigned int, unsigned int>& p = _counts[name];
p.first++;
}
Definition at line 167 of file reference_counter.h.
References ReferenceCounter::_counts, Quality::name(), and Threads::spin_mtx.
Referenced by ReferenceCountedObject< Value >::~ReferenceCountedObject().
{
Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
std::pair<unsigned int, unsigned int>& p = _counts[name];
p.second++;
}
Implements SparseMatrix< T >.
Definition at line 117 of file trilinos_epetra_matrix.C.
References libMesh::libMeshPrivateData::_is_initialized, libMesh::COMM_WORLD, and libMesh::initialized().
{
if ((m==0) || (n==0))
return;
{
// Clear initialized matrices
if (this->initialized())
this->clear();
libmesh_assert (this->_mat == NULL);
libmesh_assert (this->_map == NULL);
this->_is_initialized = true;
}
// error checking
#ifndef NDEBUG
{
libmesh_assert (n == m);
libmesh_assert (n_l == m_l);
unsigned int
summed_m_l = m_l,
summed_n_l = n_l;
Parallel::sum (summed_m_l);
Parallel::sum (summed_n_l);
libmesh_assert (m == summed_m_l);
libmesh_assert (n == summed_n_l);
}
#endif
// build a map defining the data distribution
_map = new Epetra_Map (m,
m_l,
0,
Epetra_MpiComm (libMesh::COMM_WORLD));
libmesh_assert (static_cast<unsigned int>(_map->NumGlobalPoints()) == m);
libmesh_assert (static_cast<unsigned int>(_map->MaxAllGID()+1) == m);
_mat = new Epetra_FECrsMatrix (Copy, *_map, nnz + noz);
}
Implements SparseMatrix< T >.
Definition at line 172 of file trilinos_epetra_matrix.C.
References libMesh::libMeshPrivateData::_is_initialized, and libMesh::initialized().
{
libmesh_assert (this->_dof_map != NULL);
{
// Clear initialized matrices
if (this->initialized())
this->clear();
this->_is_initialized = true;
}
_mat = new Epetra_FECrsMatrix (Copy, *_graph);
}
Definition at line 95 of file sparse_matrix.h.
Referenced by PetscMatrix< T >::_get_submatrix(), ImplicitSystem::assemble(), and ImplicitSystem::init_matrices().
{ return _is_initialized; }
Implements SparseMatrix< T >.
Definition at line 214 of file trilinos_epetra_matrix.C.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (_mat != NULL);
return static_cast<Real>(_mat->NormOne());
}
Implements SparseMatrix< T >.
Definition at line 226 of file trilinos_epetra_matrix.C.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (_mat != NULL);
return static_cast<Real>(_mat->NormInf());
}
Implements SparseMatrix< T >.
Definition at line 401 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
return static_cast<unsigned int>(_mat->NumGlobalRows());
}
Definition at line 309 of file trilinos_epetra_matrix.h.
References EpetraMatrix< T >::_mat.
Referenced by AztecLinearSolver< T >::solve().
{ libmesh_assert (_mat != NULL); return _mat; }
Implements SparseMatrix< T >.
Definition at line 412 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
return static_cast<unsigned int>(_mat->NumGlobalCols());
}
Definition at line 76 of file reference_counter.h.
References ReferenceCounter::_n_objects.
Referenced by System::read_serialized_blocked_dof_objects(), and System::write_serialized_blocked_dof_objects().
{ return _n_objects; }
Reimplemented from SparseMatrix< T >.
Definition at line 93 of file trilinos_epetra_matrix.h.
{ return true; }
In case you want a function that returns zero instead (for entries that are not in the sparsity pattern of the matrix), use the el function.
Implements SparseMatrix< T >.
Definition at line 539 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (this->_mat != NULL);
libmesh_assert (this->_mat->MyGlobalRow(i));
libmesh_assert (i >= this->row_start());
libmesh_assert (i < this->row_stop());
int row_length, *row_indices;
double *values;
_mat->ExtractMyRowView (i-this->row_start(),
row_length,
values,
row_indices);
//std::cout << 'row_length=' << row_length << std::endl;
int *index = std::lower_bound (row_indices, row_indices+row_length, j);
libmesh_assert (*index < row_length);
libmesh_assert (static_cast<unsigned int>(row_indices[*index]) == j);
//std::cout << 'val=' << values[*index] << std::endl;
return values[*index];
}
Definition at line 429 of file sparse_matrix.h.
{
// std::complex<>::operator<<() is defined, but use this form
std::cout << 'Real part:' << std::endl;
for (unsigned int i=0; i<this->m(); i++)
{
for (unsigned int j=0; j<this->n(); j++)
os << std::setw(8) << (*this)(i,j).real() << ' ';
os << std::endl;
}
os << std::endl << 'Imaginary part:' << std::endl;
for (unsigned int i=0; i<this->m(); i++)
{
for (unsigned int j=0; j<this->n(); j++)
os << std::setw(8) << (*this)(i,j).imag() << ' ';
os << std::endl;
}
}
Definition at line 118 of file sparse_matrix.C.
References libMesh::initialized(), libMesh::n_processors(), and libMesh::processor_id().
Referenced by LaspackMatrix< T >::print_personal().
{
parallel_only();
libmesh_assert (this->initialized());
// We'll print the matrix from processor 0 to make sure
// it's serialized properly
if (libMesh::processor_id() == 0)
{
libmesh_assert(this->_dof_map->first_dof() == 0);
for (unsigned int i=this->_dof_map->first_dof();
i!=this->_dof_map->end_dof(); ++i)
{
for (unsigned int j=0; j<this->n(); j++)
os << (*this)(i,j) << ' ';
os << std::endl;
}
std::vector<unsigned int> ibuf, jbuf;
std::vector<T> cbuf;
unsigned int currenti = this->_dof_map->end_dof();
for (unsigned int p=1; p < libMesh::n_processors(); ++p)
{
Parallel::receive(p, ibuf);
Parallel::receive(p, jbuf);
Parallel::receive(p, cbuf);
libmesh_assert(ibuf.size() == jbuf.size());
libmesh_assert(ibuf.size() == cbuf.size());
if (ibuf.empty())
continue;
libmesh_assert(ibuf.front() >= currenti);
libmesh_assert(ibuf.back() >= ibuf.front());
unsigned int currentb = 0;
for (;currenti <= ibuf.back(); ++currenti)
{
for (unsigned int j=0; j<this->n(); j++)
{
if (currentb < ibuf.size() &&
ibuf[currentb] == currenti &&
jbuf[currentb] == j)
{
os << cbuf[currentb] << ' ';
currentb++;
}
else
os << static_cast<T>(0.0) << ' ';
}
os << std::endl;
}
}
for (; currenti != this->m(); ++currenti)
{
for (unsigned int j=0; j<this->n(); j++)
os << static_cast<T>(0.0) << ' ';
os << std::endl;
}
}
else
{
std::vector<unsigned int> ibuf, jbuf;
std::vector<T> cbuf;
// We'll assume each processor has access to entire
// matrix rows, so (*this)(i,j) is valid if i is a local index.
for (unsigned int i=this->_dof_map->first_dof();
i!=this->_dof_map->end_dof(); ++i)
{
for (unsigned int j=0; j<this->n(); j++)
{
T c = (*this)(i,j);
if (c != static_cast<T>(0.0))
{
ibuf.push_back(i);
jbuf.push_back(j);
cbuf.push_back(c);
}
}
}
Parallel::send(0,ibuf);
Parallel::send(0,jbuf);
Parallel::send(0,cbuf);
}
}
Definition at line 83 of file reference_counter.C.
References ReferenceCounter::get_info().
{
#if defined(LIBMESH_ENABLE_REFERENCE_COUNTING) && defined(DEBUG)
std::cout << ReferenceCounter::get_info();
#endif
}
Create an ASCII file containing the matrix if a filename was provided.
Otherwise the matrix will be dumped to the screen.
Destroy the viewer.
Reimplemented from SparseMatrix< T >.
Definition at line 240 of file trilinos_epetra_matrix.C.
References libMesh::close(), and libMesh::initialized().
{
libmesh_assert (this->initialized());
// libmesh_assert (this->closed());
this->close();
libmesh_not_implemented();
// int ierr=0;
// PetscViewer petsc_viewer;
// ierr = PetscViewerCreate (libMesh::COMM_WORLD,
// &petsc_viewer);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// /**
// * Create an ASCII file containing the matrix
// * if a filename was provided.
// */
// if (name != 'NULL')
// {
// ierr = PetscViewerASCIIOpen( libMesh::COMM_WORLD,
// name.c_str(),
// &petsc_viewer);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// ierr = PetscViewerSetFormat (petsc_viewer,
// PETSC_VIEWER_ASCII_MATLAB);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// ierr = MatView (_mat, petsc_viewer);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// }
// /**
// * Otherwise the matrix will be dumped to the screen.
// */
// else
// {
// ierr = PetscViewerSetFormat (PETSC_VIEWER_STDOUT_WORLD,
// PETSC_VIEWER_ASCII_MATLAB);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// ierr = MatView (_mat, PETSC_VIEWER_STDOUT_WORLD);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
// }
// /**
// * Destroy the viewer.
// */
// ierr = PetscViewerDestroy (petsc_viewer);
// CHKERRABORT(libMesh::COMM_WORLD,ierr);
}
Implements SparseMatrix< T >.
Definition at line 600 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (_mat != NULL);
os << *_mat;
}
Definition at line 341 of file sparse_matrix.h.
{
this->_get_submatrix(submatrix,
rows,
cols,
true); // true means REUSE submatrix
}
Implements SparseMatrix< T >.
Definition at line 423 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (_map != NULL);
return static_cast<unsigned int>(_map->MinMyGID());
}
Implements SparseMatrix< T >.
Definition at line 435 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
libmesh_assert (_map != NULL);
return static_cast<unsigned int>(_map->MaxMyGID())+1;
}
Implements SparseMatrix< T >.
Definition at line 447 of file trilinos_epetra_matrix.h.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
int
epetra_i = static_cast<int>(i),
epetra_j = static_cast<int>(j);
T epetra_value = value;
if (_mat->Filled())
_mat->ReplaceGlobalValues (epetra_i, 1, &epetra_value, &epetra_j);
else
_mat->InsertGlobalValues (epetra_i, 1, &epetra_value, &epetra_j);
}
Definition at line 586 of file trilinos_epetra_matrix.h.
{
libmesh_not_implemented();
// std::swap(_mat, m._mat);
// std::swap(_destroy_mat_on_exit, m._destroy_mat_on_exit);
}
Reimplemented from SparseMatrix< T >.
Definition at line 39 of file trilinos_epetra_matrix.C.
References libMesh::COMM_WORLD, libMesh::init(), libMesh::initialized(), std::min(), and libMesh::processor_id().
{
// clear data, start over
this->clear ();
// big trouble if this fails!
libmesh_assert (this->_dof_map != NULL);
const unsigned int n_rows = sparsity_pattern.size();
const unsigned int m = this->_dof_map->n_dofs();
const unsigned int n = m;
const unsigned int n_l = this->_dof_map->n_dofs_on_processor(libMesh::processor_id());
const unsigned int m_l = n_l;
// error checking
#ifndef NDEBUG
{
libmesh_assert (n == m);
libmesh_assert (n_l == m_l);
unsigned int
summed_m_l = m_l,
summed_n_l = n_l;
Parallel::sum (summed_m_l);
Parallel::sum (summed_n_l);
libmesh_assert (m == summed_m_l);
libmesh_assert (n == summed_n_l);
}
#endif
// build a map defining the data distribution
_map = new Epetra_Map (m,
m_l,
0,
Epetra_MpiComm (libMesh::COMM_WORLD));
libmesh_assert (static_cast<unsigned int>(_map->NumGlobalPoints()) == m);
libmesh_assert (static_cast<unsigned int>(_map->MaxAllGID()+1) == m);
const std::vector<unsigned int>& n_nz = this->_dof_map->get_n_nz();
const std::vector<unsigned int>& n_oz = this->_dof_map->get_n_oz();
// Make sure the sparsity pattern isn't empty
libmesh_assert (n_nz.size() == n_l);
libmesh_assert (n_oz.size() == n_l);
// Epetra wants the total number of nonzeros, both local and remote.
std::vector<int> n_nz_tot; n_nz_tot.reserve(n_nz.size());
for (unsigned int i=0; i<n_nz.size(); i++)
n_nz_tot.push_back(std::min(n_nz[i] + n_oz[i], n));
if (m==0)
return;
_graph = new Epetra_CrsGraph(Copy, *_map, &n_nz_tot[0]);
// Tell the matrix about its structure. Initialize it
// to zero.
for (unsigned int i=0; i<n_rows; i++)
_graph->InsertGlobalIndices(_graph->GRID(i),
sparsity_pattern[i].size(),
const_cast<int *>((const int *)&sparsity_pattern[i][0]));
_graph->FillComplete();
//Initialize the matrix
libmesh_assert (!this->initialized());
this->init ();
libmesh_assert (this->initialized());
}
Definition at line 87 of file sparse_matrix.C.
References NumericVector< T >::zero().
{
dest.zero();
this->vector_mult_add(dest,arg);
}
Definition at line 97 of file sparse_matrix.C.
References NumericVector< T >::add_vector().
{
/* This functionality is actually implemented in the
NumericVector class. */
dest.add_vector(arg,*this);
}
Implements SparseMatrix< T >.
Definition at line 191 of file trilinos_epetra_matrix.C.
References libMesh::initialized().
{
libmesh_assert (this->initialized());
_mat->Scale(0.0);
}
Reimplemented in PetscMatrix< T >.
Definition at line 108 of file sparse_matrix.C.
{
/* This functionality isn't implemented or stubbed in every subclass yet */
libmesh_not_implemented();
}
Definition at line 110 of file reference_counter.h.
Referenced by ReferenceCounter::get_info(), ReferenceCounter::increment_constructor_count(), and ReferenceCounter::increment_destructor_count().
Definition at line 350 of file trilinos_epetra_matrix.h.
Definition at line 395 of file sparse_matrix.h.
Referenced by SparseMatrix< Number >::attach_dof_map().
Definition at line 344 of file trilinos_epetra_matrix.h.
Definition at line 401 of file sparse_matrix.h.
Referenced by PetscMatrix< T >::_get_submatrix(), PetscMatrix< T >::get_transpose(), SparseMatrix< Number >::initialized(), and PetscMatrix< T >::PetscMatrix().
Definition at line 339 of file trilinos_epetra_matrix.h.
Definition at line 334 of file trilinos_epetra_matrix.h.
Referenced by EpetraMatrix< T >::mat().
Definition at line 123 of file reference_counter.h.
Definition at line 118 of file reference_counter.h.
Referenced by ReferenceCounter::n_objects(), ReferenceCounter::ReferenceCounter(), and ReferenceCounter::~ReferenceCounter().
Generated automatically by Doxygen for libMesh from the source code.