Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_EpetraImport.hpp
Go to the documentation of this file.
1// @HEADER
2//
3// ***********************************************************************
4//
5// Xpetra: A linear algebra interface package
6// Copyright 2012 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
39// Jonathan Hu (jhu@sandia.gov)
40// Andrey Prokopenko (aprokop@sandia.gov)
41// Ray Tuminaro (rstumin@sandia.gov)
42//
43// ***********************************************************************
44//
45// @HEADER
46#ifndef XPETRA_EPETRAIMPORT_HPP
47#define XPETRA_EPETRAIMPORT_HPP
48
49/* this file is automatically generated - do not edit (see script/epetra.py) */
50
52
53#include "Xpetra_Import.hpp"
54
55#include "Xpetra_EpetraMap.hpp"//TMP
56
57#include "Epetra_Import.h"
58
59namespace Xpetra {
60
61 template<class GlobalOrdinal, class Node>
62 RCP< const Import<int, GlobalOrdinal, Node > > toXpetra(const Epetra_Import *import);
63 //
64
65 template<class EpetraGlobalOrdinal, class Node>
67 : public Import<int, EpetraGlobalOrdinal, Node>
68 {
69
70 typedef int LocalOrdinal;
71 typedef EpetraGlobalOrdinal GlobalOrdinal;
74
75 public:
76
78
79
82 : import_(rcp(new Epetra_Import(toEpetra<GlobalOrdinal,Node>(target), toEpetra<GlobalOrdinal,Node>(source)))) { } // Warning: Epetra(Target, Source) vs. Tpetra(Source, Target)
83
84
86 // Definition not in cpp, so comment out
87 // EpetraImportT(const Teuchos::RCP< const map_type > &source, const Teuchos::RCP< const map_type > &target, const Teuchos::RCP< Teuchos::ParameterList > &plist);
88
90 // Definition commented out in cpp
91 // EpetraImportT(const Import< LocalOrdinal, GlobalOrdinal, Node > &import);
92
95
98 createRemoteOnlyImport (const Teuchos::RCP<const map_type>& remoteTarget) const {TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::createRemoteOnlyImport not implemented"); }
99
101
103
104
106 size_t getNumSameIDs() const { XPETRA_MONITOR("EpetraImportT::getNumSameIDs"); return import_->NumSameIDs(); }
107
109 size_t getNumPermuteIDs() const { XPETRA_MONITOR("EpetraImportT::getNumPermuteIDs"); return import_->NumPermuteIDs(); }
110
113 XPETRA_MONITOR("EpetraImportT::getPermuteFromLIDs");
114 TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::getExportImageIDs not implemented"); }
115
116
119 XPETRA_MONITOR("EpetraImportT::getPermuteToLIDs");
120 TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::getPermuteToLIDs not implemented"); }
121
122
124 size_t getNumRemoteIDs() const { XPETRA_MONITOR("EpetraImportT::getNumRemoteIDs"); return import_->NumRemoteIDs(); }
125
128 XPETRA_MONITOR("EpetraImportT::getRemoteLIDs");
129 TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::getRemoteLIDs not implemented"); }
130
131
134 XPETRA_MONITOR("EpetraImportT::getRemotePIDs");
135 TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::getRemotePIDs not implemented"); }
136
137
139 size_t getNumExportIDs() const { XPETRA_MONITOR("EpetraImportT::getNumExportIDs"); return import_->NumExportIDs(); }
140
141
144 XPETRA_MONITOR("EpetraImportT::getExportLIDs");
145 TEUCHOS_TEST_FOR_EXCEPTION(1, Xpetra::Exceptions::NotImplemented, "TODO EpetraImportT<EpetraGlobalOrdinal>::getExportLIDs not implemented"); }
146
147
149 ArrayView< const int > getExportPIDs() const { XPETRA_MONITOR("EpetraImportT::getExportImageIDs"); return ArrayView<const int> (import_->ExportPIDs(),import_->NumExportIDs()); }
150
151
153 Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getSourceMap() const { XPETRA_MONITOR("EpetraImportT::getSourceMap"); return toXpetra<GlobalOrdinal, Node>(import_->SourceMap()); }
154
156 Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getTargetMap() const { XPETRA_MONITOR("EpetraImportT::getTargetMap"); return toXpetra<GlobalOrdinal, Node>(import_->TargetMap()); }
157
158 void setDistributorParameters(const Teuchos::RCP<Teuchos::ParameterList> params) const { XPETRA_MONITOR("EpetraImportT::setDistributorParameters"); }
159
161
163
164
166 void print(std::ostream &os) const { XPETRA_MONITOR("EpetraImportT::print"); import_->Print(os); }
167
169
171
172
174 EpetraImportT(const RCP<const Epetra_Import> &import) : import_(import) { }
175
178
180
181 private:
182
184
185 }; // EpetraImportT class
186
187} // Xpetra namespace
188
189#endif // XPETRA_EPETRAIMPORT_HPP
#define XPETRA_MONITOR(funcName)
ArrayView< const int > getExportPIDs() const
List of processes to which entries will be sent.
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getTargetMap() const
The Target Map used to construct this Import object.
size_t getNumSameIDs() const
Number of initial identical IDs.
Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > createRemoteOnlyImport(const Teuchos::RCP< const map_type > &remoteTarget) const
Special "constructor".
void setDistributorParameters(const Teuchos::RCP< Teuchos::ParameterList > params) const
Set parameters on the underlying object.
ArrayView< const LocalOrdinal > getExportLIDs() const
List of entries in the source Map that will be sent to other processes.
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getSourceMap() const
The Source Map used to construct this Import object.
size_t getNumExportIDs() const
Number of entries that must be sent by the calling process to other processes.
size_t getNumRemoteIDs() const
Number of entries not on the calling process.
ArrayView< const LocalOrdinal > getRemotePIDs() const
List of entries in the target Map to receive from other processes.
void print(std::ostream &os) const
Print the Import's data to the given output stream.
Map< LocalOrdinal, GlobalOrdinal, Node > map_type
The specialization of Map used by this class.
EpetraGlobalOrdinal GlobalOrdinal
RCP< const Epetra_Import > import_
RCP< const Epetra_Import > getEpetra_Import() const
Get the underlying Epetra import.
EpetraImportT(const Teuchos::RCP< const map_type > &source, const Teuchos::RCP< const map_type > &target)
Construct an Import from the source and target Maps.
ArrayView< const LocalOrdinal > getRemoteLIDs() const
List of entries in the target Map to receive from other processes.
ArrayView< const LocalOrdinal > getPermuteToLIDs() const
List of local IDs in the target Map that are permuted.
EpetraImportT(const RCP< const Epetra_Import > &import)
EpetraImportT constructor to wrap a Epetra_Import object.
size_t getNumPermuteIDs() const
Number of IDs to permute but not to communicate.
ArrayView< const LocalOrdinal > getPermuteFromLIDs() const
List of local IDs in the source Map that are permuted.
Exception throws when you call an unimplemented method of Xpetra.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Xpetra namespace
const Epetra_CrsGraph & toEpetra(const RCP< const CrsGraph< int, GlobalOrdinal, Node > > &graph)
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)