|
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 |
| Type of the local indices of the sparse matrix. | |
| 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; fourth template parameter of Tpetra::CrsMatrix. | |
| typedef MultiVector < scalar_type, local_ordinal_type, global_ordinal_type, node_type > | multivector_type |
| Specialization of Tpetra::MultiVector that matches SparseMatrixType. | |
| typedef Map < local_ordinal_type, global_ordinal_type, node_type > | map_type |
| Specialization of Tpetra::Map that matches SparseMatrixType. | |
Static Public Member Functions | |
| static void | writeSparseFile (const std::string &filename, const Teuchos::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 Teuchos::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 Teuchos::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 multivector_type &X, const std::string &matrixName, const std::string &matrixDescription, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with matrix name and description. | |
| static void | writeDenseFile (const std::string &filename, const Teuchos::RCP< const multivector_type > &X, const std::string &matrixName, const std::string &matrixDescription, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with matrix name and description. | |
| static void | writeDenseFile (const std::string &filename, const multivector_type &X, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with no matrix name or description. | |
| static void | writeDenseFile (const std::string &filename, const RCP< const multivector_type > &X, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with no matrix name or description. | |
| static void | writeDense (std::ostream &out, const multivector_type &X, const std::string &matrixName, const std::string &matrixDescription, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with matrix name and description. | |
| static void | writeDense (std::ostream &out, const RCP< const multivector_type > &X, const std::string &matrixName, const std::string &matrixDescription, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with matrix name and or description. | |
| static void | writeDense (std::ostream &out, const multivector_type &X, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with no matrix name or description. | |
| static void | writeDense (std::ostream &out, const RCP< const multivector_type > &X, const Teuchos::RCP< Teuchos::FancyOStream > &err=Teuchos::null, const Teuchos::RCP< Teuchos::FancyOStream > &dbg=Teuchos::null) |
| Print the multivector in Matrix Market format, with no matrix name or description. | |
| static void | writeMap (std::ostream &out, const map_type &map, const bool debug=false) |
| Print the Map to the given output stream. | |
| static void | writeMap (std::ostream &out, const map_type &map, const Teuchos::RCP< Teuchos::FancyOStream > &err, const bool debug=false) |
Print the Map to the given output stream out. | |
| static void | writeMapFile (const std::string &filename, const map_type &map) |
| Write the Map to the given file. | |
Matrix Market file writer for CrsMatrix and MultiVector.
| SparseMatrixType | A specialization of Tpetra::CrsMatrix. |
The Matrix Market (see their web site for details) defines a human-readable 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 MPI Process 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 Tpetra::MultiVector objects returned by those methods have a type compatible with the Tpetra::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 right-hand side b.
Definition at line 4860 of file MatrixMarket_Tpetra.hpp.
| typedef SparseMatrixType::scalar_type Tpetra::MatrixMarket::Writer< SparseMatrixType >::scalar_type |
Type of the entries of the sparse matrix.
Definition at line 4866 of file MatrixMarket_Tpetra.hpp.
| typedef SparseMatrixType::local_ordinal_type Tpetra::MatrixMarket::Writer< SparseMatrixType >::local_ordinal_type |
Type of the local indices of the sparse matrix.
Definition at line 4868 of file MatrixMarket_Tpetra.hpp.
| typedef SparseMatrixType::global_ordinal_type 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 4874 of file MatrixMarket_Tpetra.hpp.
| typedef SparseMatrixType::node_type Tpetra::MatrixMarket::Writer< SparseMatrixType >::node_type |
The Kokkos Node type; fourth template parameter of Tpetra::CrsMatrix.
Definition at line 4876 of file MatrixMarket_Tpetra.hpp.
| typedef MultiVector<scalar_type, local_ordinal_type, global_ordinal_type, node_type> Tpetra::MatrixMarket::Writer< SparseMatrixType >::multivector_type |
Specialization of Tpetra::MultiVector that matches SparseMatrixType.
Definition at line 4882 of file MatrixMarket_Tpetra.hpp.
| typedef Map<local_ordinal_type, global_ordinal_type, node_type> Tpetra::MatrixMarket::Writer< SparseMatrixType >::map_type |
Specialization of Tpetra::Map that matches SparseMatrixType.
Definition at line 4884 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparseFile | ( | const std::string & | filename, |
| const Teuchos::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 4918 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparseFile | ( | const std::string & | filename, |
| const Teuchos::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 4965 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeSparse | ( | std::ostream & | out, |
| const Teuchos::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 5003 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 5292 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile | ( | const std::string & | filename, |
| const multivector_type & | X, | ||
| const std::string & | matrixName, | ||
| const std::string & | matrixDescription, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with matrix name and description.
Write the given Tpetra::MultiVector matrix to the given file, using the Matrix Market "array" format for dense matrices. MPI Process 0 is the only MPI process that opens or writes to the file.
This is the preferred overload of writeDenseFile. It is used to implement all other overloads of writeDenseFile.
| 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). |
| err | [out] If nonnull, print any error messages to it. |
| dbg | [out] If nonnull, print copious debugging output to it. |
Definition at line 5328 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile | ( | const std::string & | filename, |
| const Teuchos::RCP< const multivector_type > & | X, | ||
| const std::string & | matrixName, | ||
| const std::string & | matrixDescription, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with matrix name and description.
See the documentation of the above six-argument version of writeDenseFile().
Definition at line 5354 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile | ( | const std::string & | filename, |
| const multivector_type & | X, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with no matrix name or description.
See the documentation of the above six-argument version of writeDenseFile().
Definition at line 5373 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDenseFile | ( | const std::string & | filename, |
| const RCP< const multivector_type > & | X, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with no matrix name or description.
See the documentation of the above six-argument version of writeDenseFile().
Definition at line 5387 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDense | ( | std::ostream & | out, |
| const multivector_type & | X, | ||
| const std::string & | matrixName, | ||
| const std::string & | matrixDescription, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with matrix name and description.
Write the given Tpetra::MultiVector matrix to an output stream, using the Matrix Market "array" format for dense matrices. MPI Process 0 is the only MPI process that writes to the output stream.
This is the preferred overload of writeDense(). It is used to implement all other overloads of writeDense(), and is also used to implement all overloads of writeDenseFile.
| out | [out] The output stream to which to write (on MPI Process 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 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). |
| err | [out] If nonnull, print any error messages to it. |
| dbg | [out] If nonnull, print copious debugging output to it. |
Definition at line 5429 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, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with matrix name and or description.
See the documentation of the above six-argument version of writeDense().
Definition at line 6016 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDense | ( | std::ostream & | out, |
| const multivector_type & | X, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with no matrix name or description.
See the documentation of the above six-argument version of writeDense().
Definition at line 6035 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeDense | ( | std::ostream & | out, |
| const RCP< const multivector_type > & | X, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err = Teuchos::null, |
||
| const Teuchos::RCP< Teuchos::FancyOStream > & | dbg = Teuchos::null |
||
| ) | [inline, static] |
Print the multivector in Matrix Market format, with no matrix name or description.
See the documentation of the above six-argument version of writeDense().
Definition at line 6049 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeMap | ( | std::ostream & | out, |
| const map_type & | map, | ||
| const bool | debug = false |
||
| ) | [inline, static] |
Print the Map to the given output stream.
| out | [out] Output stream to which to print. This only needs to be accessible on Process 0 in the Map's communicator; no other process will do anything with it. |
| map | [in] The Map to print. |
| debug | [in] Whether to print copious debugging output to stderr on all processes in the Map's communicator. |
We print the Map in Matrix Market format as a dense nonsymmetric integer matrix with two columns. The first column holds global indices (GIDs), and the second column holds process ranks (PIDs). In any row of the matrix, the first entry is a GID, and the second is a PID that owns the GID. Multiple PIDs may own the same GID, and the order of rows with respect to a given PID is significant.
Definition at line 6080 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeMap | ( | std::ostream & | out, |
| const map_type & | map, | ||
| const Teuchos::RCP< Teuchos::FancyOStream > & | err, | ||
| const bool | debug = false |
||
| ) | [inline, static] |
Print the Map to the given output stream out.
This version of writeMap() comes with an extra debug output stream err, that is only used if debug is true.
Definition at line 6096 of file MatrixMarket_Tpetra.hpp.
| static void Tpetra::MatrixMarket::Writer< SparseMatrixType >::writeMapFile | ( | const std::string & | filename, |
| const map_type & | map | ||
| ) | [inline, static] |
Write the Map to the given file.
Definition at line 6595 of file MatrixMarket_Tpetra.hpp.
1.7.6.1