Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_MatrixIO_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_MATRIX_IO_DECL
11 #define TPETRA_MATRIX_IO_DECL
12 
19 
20 #include <Tpetra_CrsMatrix.hpp>
21 
22 namespace Tpetra {
23 namespace Utils {
24 
25 bool parseIfmt(Teuchos::ArrayRCP<char> fmt, int &perline, int &width);
26 bool parseRfmt(Teuchos::ArrayRCP<char> fmt, int &perline, int &width, int &prec, char &flag);
27 void readHBInfo(const std::string &filename, int &M, int &N, int &nz, Teuchos::ArrayRCP<char> &Type, int &Nrhs);
28 
29 void readHBHeader(std::ifstream &in_file, Teuchos::ArrayRCP<char> &Title,
30  Teuchos::ArrayRCP<char> &Key, Teuchos::ArrayRCP<char> &Type,
31  int &Nrow, int &Ncol, int &Nnzero, int &Nrhs,
32  Teuchos::ArrayRCP<char> &Ptrfmt,
33  Teuchos::ArrayRCP<char> &Indfmt,
34  Teuchos::ArrayRCP<char> &Valfmt,
35  Teuchos::ArrayRCP<char> &Rhsfmt,
36  int &Ptrcrd, int &Indcrd, int &Valcrd, int &Rhscrd,
37  Teuchos::ArrayRCP<char> &Rhstype);
38 
39 void readHBMatDouble(const std::string &filename, int &M, int &N, int &nonzeros,
40  std::string &Type, Teuchos::ArrayRCP<int> &colptr,
41  Teuchos::ArrayRCP<int> &rowind,
42  Teuchos::ArrayRCP<double> &val);
43 
44 template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
45 void readHBMatrix(const std::string &filename,
46  const Teuchos::RCP<const Teuchos::Comm<int> > &comm,
48  Teuchos::RCP<const Tpetra::Map<LocalOrdinal, GlobalOrdinal, Node> > rowMap = Teuchos::null,
49  const Teuchos::RCP<Teuchos::ParameterList> &params = Teuchos::null);
50 
51 } // namespace Utils
52 } // namespace Tpetra
53 
54 #endif
Sparse matrix that presents a row-oriented interface that lets users read or modify entries...
A parallel distribution of indices over processes.