Tpetra Matrix/Vector Services Version of the Day
Tpetra_MatrixIO_decl.hpp
00001 #ifndef TPETRA_MATRIX_IO_DECL
00002 #define TPETRA_MATRIX_IO_DECL
00003 
00004 #include <string>
00005 #include "Tpetra_Map.hpp"
00006 #include "Tpetra_CrsMatrix.hpp"
00007 
00008 namespace Tpetra {
00009   namespace Utils {
00010 
00011     bool parseIfmt(Teuchos::ArrayRCP<char> fmt, int &perline, int &width);
00012     bool parseRfmt(Teuchos::ArrayRCP<char> fmt, int &perline, int &width, int &prec, char &flag);
00013     void readHBInfo(const std::string &filename, int &M, int &N, int &nz, Teuchos::ArrayRCP<char> &Type, int &Nrhs);
00014 
00015     void readHBHeader(std::ifstream &in_file, Teuchos::ArrayRCP<char> &Title, Teuchos::ArrayRCP<char> &Key, Teuchos::ArrayRCP<char> &Type, 
00016         int &Nrow, int &Ncol, int &Nnzero, int &Nrhs,
00017         Teuchos::ArrayRCP<char> &Ptrfmt, Teuchos::ArrayRCP<char> &Indfmt, Teuchos::ArrayRCP<char> &Valfmt, Teuchos::ArrayRCP<char> &Rhsfmt, 
00018         int &Ptrcrd, int &Indcrd, int &Valcrd, int &Rhscrd, Teuchos::ArrayRCP<char> &Rhstype);
00019 
00020     void readHBMatDouble(const std::string &filename, int &M, int &N, int &nonzeros, std::string &Type, Teuchos::ArrayRCP<int> &colptr, Teuchos::ArrayRCP<int> &rowind, Teuchos::ArrayRCP<double> &val);
00021 
00022     template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class LocalMatOps>
00023     void
00024     generateMatrix(const Teuchos::RCP<Teuchos::ParameterList> &plist,
00025                    const Teuchos::RCP<const Teuchos::Comm<int> > &comm, 
00026                    const Teuchos::RCP<Node> &node,
00027                    Teuchos::RCP< Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node,LocalMatOps> > &A);
00028 
00029     template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, class LocalMatOps>
00030     void
00031     readHBMatrix(const std::string &filename, 
00032                  const Teuchos::RCP<const Teuchos::Comm<int> > &comm, 
00033                  const Teuchos::RCP<Node> &node,
00034                  Teuchos::RCP< Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node,LocalMatOps> > &A,
00035                  Teuchos::RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > rowMap = Teuchos::null);
00036 
00037   } // end of Tpetra::Utils namespace
00038 } // end of Tpetra namespace
00039 
00040 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines