EpetraExt Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
EpetraExt_XMLReader.h
Go to the documentation of this file.
1/*
2//@HEADER
3// ***********************************************************************
4//
5// EpetraExt: Epetra Extended - Linear Algebra Services Package
6// Copyright (2011) Sandia Corporation
7//
8// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9// the U.S. Government retains certain rights in this software.
10//
11// Redistribution and use in source and binary forms, with or without
12// modification, are permitted provided that the following conditions are
13// met:
14//
15// 1. Redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer.
17//
18// 2. Redistributions in binary form must reproduce the above copyright
19// notice, this list of conditions and the following disclaimer in the
20// documentation and/or other materials provided with the distribution.
21//
22// 3. Neither the name of the Corporation nor the names of the
23// contributors may be used to endorse or promote products derived from
24// this software without specific prior written permission.
25//
26// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39//
40// ***********************************************************************
41//@HEADER
42*/
43
44#ifndef EPETRAEXT_XMLREADER_H
45#define EPETRAEXT_XMLREADER_H
46
48#include "Epetra_ConfigDefs.h"
49#include "Teuchos_RCP.hpp"
50#include <fstream>
51#include <vector>
52
53class Epetra_Map;
54class Epetra_Comm;
56class Epetra_CrsGraph;
58namespace Teuchos {
59 class FileXML;
60 class XMLObject;
61 class ParameterList;
62}
63
64namespace EpetraExt
65{
114{
115 public:
116 // @{ \name Constructor and destructor.
118 XMLReader(const Epetra_Comm& Comm, const std::string& FileName);
119
122
123 // @}
124 // @{ \name Read operations
125
126#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
128 void Read(const std::string& Label, Epetra_Map*& Map);
129#endif
130
131#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
133 void Read64(const std::string& Label, Epetra_Map*& Map);
134#endif
135
136#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
138 void Read(const std::string& Label, Epetra_CrsGraph*& Graph);
139#endif
140
141#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
143 void Read64(const std::string& Label, Epetra_CrsGraph*& Graph);
144#endif
145
146#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
148 void Read(const std::string& Label, Epetra_CrsMatrix*& Matrix);
149#endif
150
151#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
153 void Read64(const std::string& Label, Epetra_CrsMatrix*& Matrix);
154#endif
155
156#ifndef EPETRA_NO_32BIT_GLOBAL_INDICES
158 void Read(const std::string& Label, Epetra_MultiVector*& MultiVector);
159#endif
160
161#ifndef EPETRA_NO_64BIT_GLOBAL_INDICES
163 void Read64(const std::string& Label, Epetra_MultiVector*& MultiVector);
164#endif
165
167 void Read(const std::string& Label, std::vector<std::string>& Content);
168
170 void Read(const std::string& Label, Teuchos::ParameterList& List);
171
172 // @}
173 private:
179 Teuchos::RCP<Teuchos::XMLObject> fileXML_;
180};
181
182} // namespace EpetraExt
183
184#endif
class XMLReader: A class for reading Epetra objects stored in XML files.
void Read64(const std::string &Label, Epetra_Map *&Map)
Reads the Epetra_Map stored with label Label. Long Long version.
Teuchos::RCP< Teuchos::XMLObject > fileXML_
parsed XML object.
const Epetra_Comm & Comm_
Communicator object.
void Read(const std::string &Label, Epetra_Map *&Map)
Reads the Epetra_Map stored with label Label.
bool IsOpen_
If true, then the file has been successfully opened.
EpetraExt::BlockCrsMatrix: A class for constructing a distributed block matrix.