Tpetra Matrix/Vector Services Version of the Day

Matrix Market file writer for CrsMatrix and MultiVector. More...
#include <MatrixMarket_Tpetra.hpp>
Public Types  
typedef SparseMatrixType::scalar_type  scalar_type 
Type of the entries of the sparse matrix.  
typedef SparseMatrixType::local_ordinal_type  local_ordinal_type 
Only used to define map_type.  
typedef SparseMatrixType::global_ordinal_type  global_ordinal_type 
Type of indices as read from the Matrix Market file.  
typedef SparseMatrixType::node_type  node_type 
The Kokkos Node type.  
typedef MultiVector < scalar_type, local_ordinal_type, global_ordinal_type, node_type >  multivector_type 
The MultiVector type associated with SparseMatrixType.  
typedef Map < local_ordinal_type, global_ordinal_type, node_type >  map_type 
Tpetra::Map specialization associated with SparseMatrixType.  
Static Public Member Functions  
static void  writeSparseFile (const std::string &filename, const RCP< const sparse_matrix_type > &pMatrix, const std::string &matrixName, const std::string &matrixDescription, const bool debug=false) 
Print the sparse matrix in Matrix Market format, with comments.  
static void  writeSparseFile (const std::string &filename, const RCP< const sparse_matrix_type > &pMatrix, const bool debug=false) 
Print the sparse matrix in Matrix Market format.  
static void  writeSparse (std::ostream &out, const RCP< const sparse_matrix_type > &pMatrix, const std::string &matrixName, const std::string &matrixDescription, const bool debug=false) 
Print the sparse matrix in Matrix Market format, with comments.  
static void  writeSparse (std::ostream &out, const RCP< const sparse_matrix_type > &pMatrix, const bool debug=false) 
Print the sparse matrix in Matrix Market format.  
static void  writeDenseFile (const std::string &filename, const RCP< const multivector_type > &X, const std::string &matrixName, const std::string &matrixDescription) 
Print the multivector in Matrix Market format, with comments.  
static void  writeDenseFile (const std::string &filename, const RCP< const multivector_type > &X) 
Print the multivector in Matrix Market format.  
static void  writeDense (std::ostream &out, const RCP< const multivector_type > &X, const std::string &matrixName, const std::string &matrixDescription) 
Print the multivector in Matrix Market format.  
static void  writeDense (std::ostream &out, const RCP< const multivector_type > &X) 
Print the multivector in Matrix Market format. 
Matrix Market file writer for CrsMatrix and MultiVector.
The Matrix Market (see their web site for details) defines a humanreadable ASCII text file format for interchange of sparse and dense matrices. This class defines methods for writing sparse and dense matrices to a Matrix Market file or input stream.
All methods of this class assume that the file is only openable resp. the input stream is only writeable, on the MPI process with Rank 0 (with respect to the MPI communicator over which the given CrsMatrix or MultiVector is to be distributed).
We define the MultiVector type accepted by writeDense()
and writeDenseFile()
using the scalar_type, local_ordinal_type, global_ordinal_type, and node_type typedefs in SparseMatrixType. This ensures that the multivectors returned by those methods have a type compatible with the CrsMatrix sparse matrices accepted by writeSparse()
and writeSparseFile()
. We do this because the typical use case of Matrix Market files in Trilinos is to test sparse matrix methods, which usually involves reading a sparse matrix A and perhaps also a dense righthand side b. Also, this lets you use CrsMatrix objects with nondefault LocalMatOps template parameters. (If we templated on Scalar, LocalOrdinal, GlobalOrdinal, and Node, we would also have to template on LocalMatOps in order to deal with CrsMatrix types with nondefault LocalMatOps. That would tie Writer to CrsMatrix anyway, since MultiVector is not templated on LocalMatOps. As a result, we might as well just template on the CrsMatrix type, in order to use arbitrary LocalMatOps types without additional code.)
SparseMatrixType  A specialization of Tpetra::CrsMatrix . 
Definition at line 2330 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::scalar_type 
Type of the entries of the sparse matrix.
Definition at line 2337 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::local_ordinal_type 
Only used to define map_type.
Definition at line 2340 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::global_ordinal_type 
Type of indices as read from the Matrix Market file.
Indices of the sparse matrix are stored as global ordinals, since Matrix Market files represent the whole matrix and don't have a notion of distribution.
Definition at line 2347 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::node_type 
The Kokkos Node type.
Definition at line 2350 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::multivector_type 
The MultiVector type associated with SparseMatrixType.
Definition at line 2357 of file MatrixMarket_Tpetra.hpp.
Tpetra::MatrixMarket::Writer< SparseMatrixType >::map_type 
Tpetra::Map specialization associated with SparseMatrixType.
Definition at line 2360 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparseFile  (  const std::string &  filename, 
const RCP< const sparse_matrix_type > &  pMatrix,  
const std::string &  matrixName,  
const std::string &  matrixDescription,  
const bool  debug = false 

)  [inline, static] 
Print the sparse matrix in Matrix Market format, with comments.
Write the given Tpetra::CrsMatrix sparse matrix to the given file, using the Matrix Market "coordinate" format. MPI Proc 0 is the only MPI process that opens or writes to the file. Include the matrix name and description in the comments section of the file (after the initial banner line, but before the matrix metadata and data).
filename  [in] Name of the file to which to write the given sparse matrix. The matrix is distributed, but only Proc 0 opens the file and writes to it. 
pMatrix  [in] The sparse matrix to write to the file. 
matrixName  [in] Name of the matrix, to print in the comments section of the output file. If empty, we don't print anything (not even an empty line). 
matrixDescription  [in] Matrix description, to print in the comments section of the output file. If empty, we don't print anything (not even an empty line). 
debug  [in] Whether to print possibly copious debugging output to stderr on Proc 0. 
Definition at line 2394 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparseFile  (  const std::string &  filename, 
const RCP< const sparse_matrix_type > &  pMatrix,  
const bool  debug = false 

)  [inline, static] 
Print the sparse matrix in Matrix Market format.
Write the given Tpetra::CrsMatrix sparse matrix to the given file, using the Matrix Market "coordinate" format. MPI Proc 0 is the only MPI process that opens or writes to the file.
filename  [in] Name of the file to which to write the given sparse matrix. The matrix is distributed, but only Proc 0 opens the file and writes to it. 
pMatrix  [in] The sparse matrix to write to the file. 
debug  [in] Whether to print possibly copious debugging output to stderr on Proc 0. 
Definition at line 2432 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparse  (  std::ostream &  out, 
const RCP< const sparse_matrix_type > &  pMatrix,  
const std::string &  matrixName,  
const std::string &  matrixDescription,  
const bool  debug = false 

)  [inline, static] 
Print the sparse matrix in Matrix Market format, with comments.
Write the given Tpetra::CrsMatrix sparse matrix to an output stream, using the Matrix Market "coordinate" format. MPI Proc 0 is the only MPI process that writes to the output stream.
out  [out] Name of the output stream to which to write the given sparse matrix. The matrix is distributed, but only Proc 0 writes to the output stream. 
pMatrix  [in] The sparse matrix to write to the given output stream. 
matrixName  [in] Name of the matrix, to print in the comments section of the output stream. If empty, we don't print anything (not even an empty line). 
matrixDescription  [in] Matrix description, to print in the comments section of the output stream. If empty, we don't print anything (not even an empty line). 
debug  [in] Whether to print possibly copious debugging output to stderr on Proc 0. 
Definition at line 2472 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparse  (  std::ostream &  out, 
const RCP< const sparse_matrix_type > &  pMatrix,  
const bool  debug = false 

)  [inline, static] 
Print the sparse matrix in Matrix Market format.
Write the given Tpetra::CrsMatrix sparse matrix to an output stream, using the Matrix Market "coordinate" format. MPI Proc 0 is the only MPI process that writes to the output stream.
out  [out] Name of the output stream to which to write the given sparse matrix. The matrix is distributed, but only Proc 0 writes to the output stream. 
pMatrix  [in] The sparse matrix to write to the given output stream. 
debug  [in] Whether to print possibly copious debugging output to stderr on Proc 0. 
Definition at line 2734 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile  (  const std::string &  filename, 
const RCP< const multivector_type > &  X,  
const std::string &  matrixName,  
const std::string &  matrixDescription  
)  [inline, static] 
Print the multivector in Matrix Market format, with comments.
Write the given Tpetra::MultiVector matrix to the given file, using the Matrix Market "array" format for dense matrices. MPI Proc 0 is the only MPI process that opens or writes to the file.
filename  [in] Name of the output file to create (on MPI Proc 0 only). 
X  [in] The dense matrix (stored as a multivector) to write to the output file. 
matrixName  [in] Name of the matrix, to print in the comments section of the output file. If empty, we don't print anything (not even an empty line). 
matrixDescription  [in] Matrix description, to print in the comments section of the output file. If empty, we don't print anything (not even an empty line). 
Definition at line 2768 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile  (  const std::string &  filename, 
const RCP< const multivector_type > &  X  
)  [inline, static] 
Print the multivector in Matrix Market format.
Write the given Tpetra::MultiVector matrix to the given file, using the Matrix Market "array" format for dense matrices. MPI Proc 0 is the only MPI process that opens or writes to the file.
filename  [in] Name of the output file to create (on MPI Proc 0 only). 
X  [in] The dense matrix (stored as a multivector) to write to the output file. 
Definition at line 2804 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDense  (  std::ostream &  out, 
const RCP< const multivector_type > &  X,  
const std::string &  matrixName,  
const std::string &  matrixDescription  
)  [inline, static] 
Print the multivector in Matrix Market format.
Write the given Tpetra::MultiVector matrix to an output stream, using the Matrix Market "array" format for dense matrices. MPI Proc 0 is the only MPI process that writes to the output stream.
out  [out] The output stream to which to write (on MPI Proc 0 only). 
X  [in] The dense matrix (stored as a multivector) to write to the output stream. 
matrixName  [in] Name of the matrix, to print in the comments section of the output stream. If empty, we don't print anything (not even an empty line). 
matrixDescription  [in] Matrix description, to print in the comments section of the output stream. If empty, we don't print anything (not even an empty line). 
Definition at line 2837 of file MatrixMarket_Tpetra.hpp.
static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDense  (  std::ostream &  out, 
const RCP< const multivector_type > &  X  
)  [inline, static] 
Print the multivector in Matrix Market format.
Write the given Tpetra::MultiVector matrix to an output stream, using the Matrix Market "array" format for dense matrices. MPI Proc 0 is the only MPI process that writes to the output stream.
out  [out] The output stream to which to write (on MPI Proc 0 only). 
X  [in] The dense matrix (stored as a multivector) to write to the output stream. 
Definition at line 2964 of file MatrixMarket_Tpetra.hpp.