Xpetra_TpetraCrsMatrix.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_TPETRACRSMATRIX_HPP
47 #define XPETRA_TPETRACRSMATRIX_HPP
48 
49 /* this file is automatically generated - do not edit (see scripts/tpetra.py) */
50 
51 // FIXME (mfh 03 Sep 2014) The above is probably not true anymore.
52 // Furthermore, I don't think anyone maintains the scripts.
53 // Feel free to correct this comment if I'm wrong.
54 
56 
57 #include "Tpetra_CrsMatrix.hpp"
58 
59 #include "Xpetra_CrsMatrix.hpp"
60 #include "Xpetra_TpetraMap.hpp"
62 #include "Xpetra_TpetraVector.hpp"
64 //#include "Xpetra_TpetraRowMatrix.hpp"
65 #include "Xpetra_Exceptions.hpp"
66 
67 namespace Xpetra {
68 
69  // TODO: move that elsewhere
70  // template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
71  // const Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> toTpetraCrsMatrix(const Xpetra::DistObject<char, LocalOrdinal, GlobalOrdinal, Node> &);
72  //
73 
74  template<class Scalar = CrsMatrix<>::scalar_type,
75  class LocalOrdinal =
77  class GlobalOrdinal =
79  class Node =
82  : public CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> //, public TpetraRowMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node>
83  {
84 
85  // The following typedef are used by the XPETRA_DYNAMIC_CAST() macro.
90 
91  // The following typedefs are used by the Kokkos interface
92 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
93 #ifdef HAVE_XPETRA_TPETRA
95 #endif
96 #endif
97 
98  public:
99 
101 
102 
104  TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
105  : mtx_ (Teuchos::rcp (new Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> (toTpetra(rowMap), maxNumEntriesPerRow, toTpetra(pftype), params))) { }
106 
109  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> (toTpetra(rowMap), NumEntriesPerRowToAlloc, toTpetra(pftype), params))) { }
110 
113  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(toTpetra(rowMap), toTpetra(colMap), maxNumEntriesPerRow, toTpetra(pftype), params))) { }
114 
117  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >(toTpetra(rowMap), toTpetra(colMap), NumEntriesPerRowToAlloc, toTpetra(pftype), params))) { }
118 
121  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >(toTpetra(graph), params))) { }
122 
123 
124 
128  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
129  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
130  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null)
131  {
132  typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MyTpetraCrsMatrix;
133  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, *sourceMatrix, tSourceMatrix, "Xpetra::TpetraCrsMatrix constructor only accepts Xpetra::TpetraCrsMatrix as the input argument.");//TODO: remove and use toTpetra()
134  RCP< const Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > v = tSourceMatrix.getTpetra_CrsMatrix();
135 
136  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myDomainMap = domainMap!=Teuchos::null ? toTpetra(domainMap) : Teuchos::null;
137  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myRangeMap = rangeMap!=Teuchos::null ? toTpetra(rangeMap) : Teuchos::null;
138  mtx_=Tpetra::importAndFillCompleteCrsMatrix<MyTpetraCrsMatrix>(tSourceMatrix.getTpetra_CrsMatrix(),toTpetra(importer),myDomainMap,myRangeMap,params);
139  bool restrictComm=false;
140  if(!params.is_null()) restrictComm = params->get("Restrict Communicator",restrictComm);
141  if(restrictComm && mtx_->getRowMap().is_null()) mtx_=Teuchos::null;
142 
143  }
144 
148  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
149  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
150  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null)
151  {
152  typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MyTpetraCrsMatrix;
153  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, *sourceMatrix, tSourceMatrix, "Xpetra::TpetraCrsMatrix constructor only accepts Xpetra::TpetraCrsMatrix as the input argument.");//TODO: remove and use toTpetra()
154  RCP< const Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > v = tSourceMatrix.getTpetra_CrsMatrix();
155 
156  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myDomainMap = domainMap!=Teuchos::null ? toTpetra(domainMap) : Teuchos::null;
157  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myRangeMap = rangeMap!=Teuchos::null ? toTpetra(rangeMap) : Teuchos::null;
158  mtx_=Tpetra::exportAndFillCompleteCrsMatrix<MyTpetraCrsMatrix>(tSourceMatrix.getTpetra_CrsMatrix(),toTpetra(exporter),myDomainMap,myRangeMap,params);
159 
160  }
161 
164  const Import<LocalOrdinal,GlobalOrdinal,Node> & RowImporter,
165  const Teuchos::RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > DomainImporter,
166  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
167  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
169  {
170  typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MyTpetraCrsMatrix;
171  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, *sourceMatrix, tSourceMatrix, "Xpetra::TpetraCrsMatrix constructor only accepts Xpetra::TpetraCrsMatrix as the input argument.");//TODO: remove and use toTpetra()
172  RCP< const Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > v = tSourceMatrix.getTpetra_CrsMatrix();
173 
174  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myDomainMap = domainMap!=Teuchos::null ? toTpetra(domainMap) : Teuchos::null;
175  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myRangeMap = rangeMap!=Teuchos::null ? toTpetra(rangeMap) : Teuchos::null;
176 
177  mtx_=Tpetra::importAndFillCompleteCrsMatrix<MyTpetraCrsMatrix>(tSourceMatrix.getTpetra_CrsMatrix(),toTpetra(RowImporter),toTpetra(*DomainImporter),myDomainMap,myRangeMap,params);
178  bool restrictComm=false;
179  if(!params.is_null()) restrictComm = params->get("Restrict Communicator",restrictComm);
180  if(restrictComm && mtx_->getRowMap().is_null()) mtx_=Teuchos::null;
181  }
182 
185  const Export<LocalOrdinal,GlobalOrdinal,Node> & RowExporter,
186  const Teuchos::RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > DomainExporter,
187  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
188  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
190  {
191  typedef Tpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MyTpetraCrsMatrix;
192  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, *sourceMatrix, tSourceMatrix, "Xpetra::TpetraCrsMatrix constructor only accepts Xpetra::TpetraCrsMatrix as the input argument.");//TODO: remove and use toTpetra()
193  RCP< const Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > v = tSourceMatrix.getTpetra_CrsMatrix();
194 
195  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myDomainMap = domainMap!=Teuchos::null ? toTpetra(domainMap) : Teuchos::null;
196  RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > myRangeMap = rangeMap!=Teuchos::null ? toTpetra(rangeMap) : Teuchos::null;
197 
198  mtx_=Tpetra::exportAndFillCompleteCrsMatrix<MyTpetraCrsMatrix>(tSourceMatrix.getTpetra_CrsMatrix(),toTpetra(RowExporter),toTpetra(*DomainExporter),myDomainMap,myRangeMap,params);
199  }
200 
201 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
202 #ifdef HAVE_XPETRA_TPETRA
225  const local_matrix_type& lclMatrix,
226  const Teuchos::RCP<Teuchos::ParameterList>& params = null)
227  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(toTpetra(rowMap), toTpetra(colMap), lclMatrix, params))) { }
228 
231  const local_matrix_type& lclMatrix,
232  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
233  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
234  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
235  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
236  const Teuchos::RCP<Teuchos::ParameterList>& params = null)
237  : mtx_(Teuchos::rcp(new Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>(lclMatrix, toTpetra(rowMap), toTpetra(colMap), toTpetra(domainMap), toTpetra(rangeMap), params))) { }
238 #endif
239 #endif
240 
242  virtual ~TpetraCrsMatrix() { }
243 
245 
247 
248 
250  void insertGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals) { XPETRA_MONITOR("TpetraCrsMatrix::insertGlobalValues"); mtx_->insertGlobalValues(globalRow, cols, vals); }
251 
253  void insertLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals) { XPETRA_MONITOR("TpetraCrsMatrix::insertLocalValues"); mtx_->insertLocalValues(localRow, cols, vals); }
254 
256  void replaceGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals) { XPETRA_MONITOR("TpetraCrsMatrix::replaceGlobalValues"); mtx_->replaceGlobalValues(globalRow, cols, vals); }
257 
259  void
260  replaceLocalValues (LocalOrdinal localRow,
261  const ArrayView<const LocalOrdinal> &cols,
262  const ArrayView<const Scalar> &vals)
263  {
264  XPETRA_MONITOR("TpetraCrsMatrix::replaceLocalValues");
265  typedef typename ArrayView<const LocalOrdinal>::size_type size_type;
266  const LocalOrdinal numValid =
267  mtx_->replaceLocalValues (localRow, cols, vals);
269  static_cast<size_type> (numValid) != cols.size (), std::runtime_error,
270  "replaceLocalValues returned " << numValid << " != cols.size() = " <<
271  cols.size () << ".");
272  }
273 
275  void setAllToScalar(const Scalar &alpha) { XPETRA_MONITOR("TpetraCrsMatrix::setAllToScalar"); mtx_->setAllToScalar(alpha); }
276 
278  void scale(const Scalar &alpha) { XPETRA_MONITOR("TpetraCrsMatrix::scale"); mtx_->scale(alpha); }
279 
281  //** \warning This is an expert-only routine and should not be called from user code. */
282  void allocateAllValues(size_t numNonZeros,ArrayRCP<size_t> & rowptr, ArrayRCP<LocalOrdinal> & colind, ArrayRCP<Scalar> & values)
283  { XPETRA_MONITOR("TpetraCrsMatrix::allocateAllValues"); rowptr.resize(getNodeNumRows()+1); colind.resize(numNonZeros); values.resize(numNonZeros);}
284 
286  void setAllValues(const ArrayRCP<size_t> & rowptr, const ArrayRCP<LocalOrdinal> & colind, const ArrayRCP<Scalar> & values)
287  { XPETRA_MONITOR("TpetraCrsMatrix::setAllValues"); mtx_->setAllValues(rowptr,colind,values); }
288 
291  { XPETRA_MONITOR("TpetraCrsMatrix::getAllValues"); mtx_->getAllValues(rowptr,colind,values); }
292 
293  bool haveGlobalConstants() const
294  { return mtx_->haveGlobalConstants();}
295 
297 
299 
300 
302  void resumeFill(const RCP< ParameterList > &params=null) { XPETRA_MONITOR("TpetraCrsMatrix::resumeFill"); mtx_->resumeFill(params); }
303 
305  void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null) { XPETRA_MONITOR("TpetraCrsMatrix::fillComplete"); mtx_->fillComplete(toTpetra(domainMap), toTpetra(rangeMap), params); }
306 
308  void fillComplete(const RCP< ParameterList > &params=null) { XPETRA_MONITOR("TpetraCrsMatrix::fillComplete"); mtx_->fillComplete(params); }
309 
310 
313  XPETRA_MONITOR("TpetraCrsMatrix::replaceDomainMapAndImporter");
314  XPETRA_DYNAMIC_CAST( const TpetraImportClass , *newImporter, tImporter, "Xpetra::TpetraCrsMatrix::replaceDomainMapAndImporter only accepts Xpetra::TpetraImport.");
315  RCP<const Tpetra::Import<LocalOrdinal,GlobalOrdinal,Node> > myImport = tImporter.getTpetra_Import();
316  mtx_->replaceDomainMapAndImporter( toTpetra(newDomainMap),myImport);
317  }
318 
321  const RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> > & rangeMap,
322  const RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > &importer=Teuchos::null,
323  const RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > &exporter=Teuchos::null,
324  const RCP<ParameterList> &params=Teuchos::null) {
325  XPETRA_MONITOR("TpetraCrsMatrix::expertStaticFillComplete");
328 
329  if(importer!=Teuchos::null) {
330  XPETRA_DYNAMIC_CAST( const TpetraImportClass , *importer, tImporter, "Xpetra::TpetraCrsMatrix::expertStaticFillComplete only accepts Xpetra::TpetraImport.");
331  myImport = tImporter.getTpetra_Import();
332  }
333  if(exporter!=Teuchos::null) {
334  XPETRA_DYNAMIC_CAST( const TpetraExportClass , *exporter, tExporter, "Xpetra::TpetraCrsMatrix::expertStaticFillComplete only accepts Xpetra::TpetraExport.");
335  myExport = tExporter.getTpetra_Export();
336  }
337 
338  mtx_->expertStaticFillComplete(toTpetra(domainMap),toTpetra(rangeMap),myImport,myExport,params);
339  }
340 
342 
344 
345 
347  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const { XPETRA_MONITOR("TpetraCrsMatrix::getRowMap"); return toXpetra(mtx_->getRowMap()); }
348 
350  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const { XPETRA_MONITOR("TpetraCrsMatrix::getColMap"); return toXpetra(mtx_->getColMap()); }
351 
353  RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > getCrsGraph() const { XPETRA_MONITOR("TpetraCrsMatrix::getCrsGraph"); return toXpetra(mtx_->getCrsGraph()); }
354 
356  global_size_t getGlobalNumRows() const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalNumRows"); return mtx_->getGlobalNumRows(); }
357 
359  global_size_t getGlobalNumCols() const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalNumCols"); return mtx_->getGlobalNumCols(); }
360 
362  size_t getNodeNumRows() const { XPETRA_MONITOR("TpetraCrsMatrix::getNodeNumRows"); return mtx_->getNodeNumRows(); }
363 
365  size_t getNodeNumCols() const { XPETRA_MONITOR("TpetraCrsMatrix::getNodeNumCols"); return mtx_->getNodeNumCols(); }
366 
368  global_size_t getGlobalNumEntries() const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalNumEntries"); return mtx_->getGlobalNumEntries(); }
369 
371  size_t getNodeNumEntries() const { XPETRA_MONITOR("TpetraCrsMatrix::getNodeNumEntries"); return mtx_->getNodeNumEntries(); }
372 
374  size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const { XPETRA_MONITOR("TpetraCrsMatrix::getNumEntriesInLocalRow"); return mtx_->getNumEntriesInLocalRow(localRow); }
375 
377  size_t getGlobalMaxNumRowEntries() const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalMaxNumRowEntries"); return mtx_->getGlobalMaxNumRowEntries(); }
378 
380  size_t getNodeMaxNumRowEntries() const { XPETRA_MONITOR("TpetraCrsMatrix::getNodeMaxNumRowEntries"); return mtx_->getNodeMaxNumRowEntries(); }
381 
383  bool isLocallyIndexed() const { XPETRA_MONITOR("TpetraCrsMatrix::isLocallyIndexed"); return mtx_->isLocallyIndexed(); }
384 
386  bool isGloballyIndexed() const { XPETRA_MONITOR("TpetraCrsMatrix::isGloballyIndexed"); return mtx_->isGloballyIndexed(); }
387 
389  bool isFillComplete() const { XPETRA_MONITOR("TpetraCrsMatrix::isFillComplete"); return mtx_->isFillComplete(); }
390 
392  bool isFillActive() const { XPETRA_MONITOR("TpetraCrsMatrix::isFillActive"); return mtx_->isFillActive(); }
393 
395  typename ScalarTraits< Scalar >::magnitudeType getFrobeniusNorm() const { XPETRA_MONITOR("TpetraCrsMatrix::getFrobeniusNorm"); return mtx_->getFrobeniusNorm(); }
396 
398  bool supportsRowViews() const { XPETRA_MONITOR("TpetraCrsMatrix::supportsRowViews"); return mtx_->supportsRowViews(); }
399 
401  void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const { XPETRA_MONITOR("TpetraCrsMatrix::getLocalRowCopy"); mtx_->getLocalRowCopy(LocalRow, Indices, Values, NumEntries); }
402 
404  void getGlobalRowView(GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalRowView"); mtx_->getGlobalRowView(GlobalRow, indices, values); }
405 
407  void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const { XPETRA_MONITOR("TpetraCrsMatrix::getGlobalRowCopy"); mtx_->getGlobalRowCopy(GlobalRow, indices, values, numEntries); }
408 
410  void getLocalRowView(LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const { XPETRA_MONITOR("TpetraCrsMatrix::getLocalRowView"); mtx_->getLocalRowView(LocalRow, indices, values); }
411 
413 
415 
416 
419 
421  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const { XPETRA_MONITOR("TpetraCrsMatrix::getDomainMap"); return toXpetra(mtx_->getDomainMap()); }
422 
424  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const { XPETRA_MONITOR("TpetraCrsMatrix::getRangeMap"); return toXpetra(mtx_->getRangeMap()); }
425 
427 
429 
430 
432  std::string description() const { XPETRA_MONITOR("TpetraCrsMatrix::description"); return mtx_->description(); }
433 
435  void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const { XPETRA_MONITOR("TpetraCrsMatrix::describe"); mtx_->describe(out, verbLevel); }
436 
438 
441  : mtx_ (matrix.mtx_->template clone<Node> (matrix.mtx_->getNode ())) {}
442 
445  XPETRA_MONITOR("TpetraCrsMatrix::getLocalDiagCopy");
446  XPETRA_DYNAMIC_CAST(TpetraVectorClass, diag, tDiag, "Xpetra::TpetraCrsMatrix.getLocalDiagCopy() only accept Xpetra::TpetraVector as input arguments.");
447  mtx_->getLocalDiagCopy(*tDiag.getTpetra_Vector());
448  // mtx_->getLocalDiagCopy(toTpetra(diag));
449  }
450 
453  XPETRA_MONITOR("TpetraCrsMatrix::getLocalDiagOffsets");
454  mtx_->getLocalDiagOffsets(offsets);
455  }
456 
459  XPETRA_MONITOR("TpetraCrsMatrix::getLocalDiagCopy");
460  //XPETRA_DYNAMIC_CAST(TpetraVectorClass, diag, tDiag, "Xpetra::TpetraCrsMatrix.getLocalDiagCopy() only accept Xpetra::TpetraVector as input arguments.");
461  //mtx_->getLocalDiagCopy(*tDiag.getTpetra_Vector(), offsets);
462  mtx_->getLocalDiagCopy(*(toTpetra(diag)), offsets);
463  }
464 
467  XPETRA_MONITOR("TpetraCrsMatrix::leftScale");
468  mtx_->leftScale(*(toTpetra(x)));
469  }
470 
473  XPETRA_MONITOR("TpetraCrsMatrix::rightScale");
474  mtx_->rightScale(*(toTpetra(x)));
475  }
476 
478  //{@
479 
482 
486  XPETRA_MONITOR("TpetraCrsMatrix::doImport");
487 
488  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, source, tSource, "Xpetra::TpetraCrsMatrix::doImport only accept Xpetra::TpetraCrsMatrix as input arguments.");//TODO: remove and use toTpetra()
490  //mtx_->doImport(toTpetraCrsMatrix(source), *tImporter.getTpetra_Import(), toTpetra(CM));
491  mtx_->doImport(*v, toTpetra(importer), toTpetra(CM));
492  }
493 
497  XPETRA_MONITOR("TpetraCrsMatrix::doExport");
498 
499  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, dest, tDest, "Xpetra::TpetraCrsMatrix::doImport only accept Xpetra::TpetraCrsMatrix as input arguments.");//TODO: remove and use toTpetra()
501  mtx_->doExport(*v, toTpetra(importer), toTpetra(CM));
502 
503  }
504 
508  XPETRA_MONITOR("TpetraCrsMatrix::doImport");
509 
510  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, source, tSource, "Xpetra::TpetraCrsMatrix::doImport only accept Xpetra::TpetraCrsMatrix as input arguments.");//TODO: remove and use toTpetra()
512  mtx_->doImport(*v, toTpetra(exporter), toTpetra(CM));
513 
514  }
515 
519  XPETRA_MONITOR("TpetraCrsMatrix::doExport");
520 
521  XPETRA_DYNAMIC_CAST(const TpetraCrsMatrixClass, dest, tDest, "Xpetra::TpetraCrsMatrix::doImport only accept Xpetra::TpetraCrsMatrix as input arguments.");//TODO: remove and use toTpetra()
523  mtx_->doExport(*v, toTpetra(exporter), toTpetra(CM));
524 
525  }
526 
528  XPETRA_MONITOR("TpetraCrsMatrix::removeEmptyProcessesInPlace");
529  mtx_->removeEmptyProcessesInPlace(toTpetra(newMap));
530  }
531 
532  // @}
533 
534  template<class Node2>
536  clone (const RCP<Node2> &node2) const
537  {
539  }
540 
542 
543 
545  bool hasMatrix() const {
546  return ! mtx_.is_null ();
547  }
548 
550  TpetraCrsMatrix(const Teuchos::RCP<Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > &mtx) : mtx_(mtx) { }
551 
554 
557 
558 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
559 #ifdef HAVE_XPETRA_TPETRA
560  local_matrix_type getLocalMatrix () const {
562  return getTpetra_CrsMatrixNonConst()->getLocalMatrix();
563  }
564 
565  void setAllValues (const typename local_matrix_type::row_map_type& ptr,
566  const typename local_matrix_type::StaticCrsGraphType::entries_type::non_const_type& ind,
567  const typename local_matrix_type::values_type& val) {
568  getTpetra_CrsMatrixNonConst()->setAllValues(ptr,ind,val);
569  }
570 #endif
571 #endif
572 
574 
575  private:
577  }; // TpetraCrsMatrix class
578 
579 #ifdef HAVE_XPETRA_EPETRA
580 
581 #if ((defined(EPETRA_HAVE_OMP) && (!defined(HAVE_TPETRA_INST_OPENMP) || !defined(HAVE_TPETRA_INST_INT_INT))) || \
582  (!defined(EPETRA_HAVE_OMP) && (!defined(HAVE_TPETRA_INST_SERIAL) || !defined(HAVE_TPETRA_INST_INT_INT))))
583 
584  // specialization of TpetraCrsMatrix for GO=LO=int
585  template<class Scalar>
586  class TpetraCrsMatrix<Scalar,int,int,EpetraNode>
587  : public CrsMatrix<Scalar,int,int,EpetraNode> //, public TpetraRowMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node>
588  {
589  typedef int LocalOrdinal;
590  typedef int GlobalOrdinal;
591  typedef EpetraNode Node;
592  // The following typedef are used by the XPETRA_DYNAMIC_CAST() macro.
597 
598  // The following typedefs are used by the Kokkos interface
599 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
600 #ifdef HAVE_XPETRA_TPETRA
602 #endif
603 #endif
604 
605  public:
606 
608 
609 
611  TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null) {
613  }
614 
618  }
619 
621  TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null) {
623  }
624 
628  }
629 
633  }
634 
635 
636 
640  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
641  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
642  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
644  }
645 
649  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
650  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
651  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
653  }
654 
657  const Import<LocalOrdinal,GlobalOrdinal,Node> & RowImporter,
658  const Teuchos::RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > DomainImporter,
659  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
660  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
662  {
664  }
665 
668  const Export<LocalOrdinal,GlobalOrdinal,Node> & RowExporter,
669  const Teuchos::RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > DomainExporter,
670  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
671  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
673  {
675  }
676 
677 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
678 #ifdef HAVE_XPETRA_TPETRA
701  const local_matrix_type& lclMatrix,
702  const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
703  XPETRA_TPETRA_ETI_EXCEPTION( typeid(TpetraCrsMatrix<Scalar,int,int,EpetraNode>).name() , "TpetraCrsMatrix<int,int>", "int", typeid(EpetraNode).name() );
704  }
705 
708  const local_matrix_type& lclMatrix,
709  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
710  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
711  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
712  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
713  const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
714  XPETRA_TPETRA_ETI_EXCEPTION( typeid(TpetraCrsMatrix<Scalar,int,int,EpetraNode>).name() , "TpetraCrsMatrix<int,int>", "int", typeid(EpetraNode).name() );
715  }
716 #endif
717 #endif
718 
720  virtual ~TpetraCrsMatrix() { }
721 
723 
725 
726 
729 
732 
735 
737  void
739  const ArrayView<const LocalOrdinal> &cols,
740  const ArrayView<const Scalar> &vals)
741  { }
742 
744  void setAllToScalar(const Scalar &alpha) { }
745 
747  void scale(const Scalar &alpha) { }
748 
750  //** \warning This is an expert-only routine and should not be called from user code. */
751  void allocateAllValues(size_t numNonZeros,ArrayRCP<size_t> & rowptr, ArrayRCP<LocalOrdinal> & colind, ArrayRCP<Scalar> & values) { }
752 
754  void setAllValues(const ArrayRCP<size_t> & rowptr, const ArrayRCP<LocalOrdinal> & colind, const ArrayRCP<Scalar> & values) { }
755 
758 
759  bool haveGlobalConstants() const { return false;}
760 
761 
763 
765 
766 
768  void resumeFill(const RCP< ParameterList > &params=null) { }
769 
771  void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null) { }
772 
774  void fillComplete(const RCP< ParameterList > &params=null) { }
775 
776 
779 
782  const RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> > & rangeMap,
783  const RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > &importer=Teuchos::null,
784  const RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > &exporter=Teuchos::null,
785  const RCP<ParameterList> &params=Teuchos::null) { }
786 
788 
790 
791 
793  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const { return Teuchos::null; }
794 
796  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const { return Teuchos::null; }
797 
800 
802  global_size_t getGlobalNumRows() const { return 0; }
803 
805  global_size_t getGlobalNumCols() const { return 0; }
806 
808  size_t getNodeNumRows() const { return 0; }
809 
811  size_t getNodeNumCols() const { return 0; }
812 
814  global_size_t getGlobalNumEntries() const { return 0; }
815 
817  size_t getNodeNumEntries() const { return 0; }
818 
820  size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const { return 0; }
821 
823  size_t getGlobalMaxNumRowEntries() const { return 0; }
824 
826  size_t getNodeMaxNumRowEntries() const { return 0; }
827 
829  bool isLocallyIndexed() const { return false; }
830 
832  bool isGloballyIndexed() const { return false; }
833 
835  bool isFillComplete() const { return false; }
836 
838  bool isFillActive() const { return false; }
839 
842 
844  bool supportsRowViews() const { return false; }
845 
847  void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const { }
848 
851 
853  void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const { }
854 
857 
859 
861 
862 
865 
867  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const { return Teuchos::null; }
868 
870  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const { return Teuchos::null; }
871 
873 
875 
876 
878  std::string description() const { return std::string(""); }
879 
882 
884 
887 
890 
893 
896 
899 
902 
904  //{@
905 
908 
912 
916 
920 
924 
926 
927  // @}
928 
929  template<class Node2>
931  clone (const RCP<Node2> &node2) const { return Teuchos::null; }
932 
934 
935 
937  bool hasMatrix() const { return false; }
938 
940  TpetraCrsMatrix(const Teuchos::RCP<Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > &mtx) {
942  }
943 
946 
949 
950 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
951 #ifdef HAVE_XPETRA_TPETRA
952  local_matrix_type getLocalMatrix () const {
954  return getTpetra_CrsMatrixNonConst()->getLocalMatrix();
955  }
956 
957  void setAllValues (const typename local_matrix_type::row_map_type& ptr,
958  const typename local_matrix_type::StaticCrsGraphType::entries_type::non_const_type& ind,
959  const typename local_matrix_type::values_type& val) {
960  getTpetra_CrsMatrixNonConst()->setAllValues(ptr,ind,val);
961  }
962 #endif
963 #endif
964 
966  }; // TpetraCrsMatrix class (specialization for GO=int, NO=EpetraNode)
967 #endif
968 
969 #if ((defined(EPETRA_HAVE_OMP) && (!defined(HAVE_TPETRA_INST_OPENMP) || !defined(HAVE_TPETRA_INST_INT_LONG_LONG))) || \
970  (!defined(EPETRA_HAVE_OMP) && (!defined(HAVE_TPETRA_INST_SERIAL) || !defined(HAVE_TPETRA_INST_INT_LONG_LONG))))
971 
972  // specialization of TpetraCrsMatrix for GO=long long, NO=EpetraNode
973  template<class Scalar>
974  class TpetraCrsMatrix<Scalar,int,long long,EpetraNode>
975  : public CrsMatrix<Scalar,int,long long,EpetraNode> //, public TpetraRowMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node>
976  {
977  typedef int LocalOrdinal;
978  typedef long long GlobalOrdinal;
979  typedef EpetraNode Node;
980  // The following typedef are used by the XPETRA_DYNAMIC_CAST() macro.
985 
986  // The following typedefs are used by the Kokkos interface
987 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
988 #ifdef HAVE_XPETRA_TPETRA
990 #endif
991 #endif
992 
993  public:
994 
996 
997 
999  TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null) {
1001  }
1002 
1006  }
1007 
1009  TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null) {
1011  }
1012 
1016  }
1017 
1021  }
1022 
1023 
1024 
1027  const Import<LocalOrdinal,GlobalOrdinal,Node> & importer,
1028  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
1029  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
1030  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
1032  }
1033 
1036  const Export<LocalOrdinal,GlobalOrdinal,Node> & exporter,
1037  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
1038  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
1039  const Teuchos::RCP<Teuchos::ParameterList>& params = Teuchos::null) {
1041  }
1042 
1045  const Import<LocalOrdinal,GlobalOrdinal,Node> & RowImporter,
1046  const Teuchos::RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > DomainImporter,
1047  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
1048  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
1050  {
1052  }
1053 
1056  const Export<LocalOrdinal,GlobalOrdinal,Node> & RowExporter,
1057  const Teuchos::RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > DomainExporter,
1058  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap,
1059  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap,
1061  {
1063  }
1064 
1065 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
1066 #ifdef HAVE_XPETRA_TPETRA
1088  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
1089  const local_matrix_type& lclMatrix,
1090  const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
1092  }
1093 
1095  TpetraCrsMatrix (
1096  const local_matrix_type& lclMatrix,
1097  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rowMap,
1098  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& colMap,
1099  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& domainMap = Teuchos::null,
1100  const Teuchos::RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> >& rangeMap = Teuchos::null,
1101  const Teuchos::RCP<Teuchos::ParameterList>& params = null) {
1102  XPETRA_TPETRA_ETI_EXCEPTION( typeid(TpetraCrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,EpetraNode>).name() , typeid(TpetraCrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,EpetraNode>).name(), "long long", typeid(EpetraNode).name() );
1103  }
1104 #endif
1105 #endif
1106 
1108  virtual ~TpetraCrsMatrix() { }
1109 
1111 
1113 
1114 
1117 
1120 
1123 
1125  void
1127  const ArrayView<const LocalOrdinal> &cols,
1128  const ArrayView<const Scalar> &vals)
1129  { }
1130 
1132  void setAllToScalar(const Scalar &alpha) { }
1133 
1135  void scale(const Scalar &alpha) { }
1136 
1138  //** \warning This is an expert-only routine and should not be called from user code. */
1139  void allocateAllValues(size_t numNonZeros,ArrayRCP<size_t> & rowptr, ArrayRCP<LocalOrdinal> & colind, ArrayRCP<Scalar> & values) { }
1140 
1142  void setAllValues(const ArrayRCP<size_t> & rowptr, const ArrayRCP<LocalOrdinal> & colind, const ArrayRCP<Scalar> & values) { }
1143 
1146 
1147  bool haveGlobalConstants() const { return false;}
1148 
1150 
1152 
1153 
1155  void resumeFill(const RCP< ParameterList > &params=null) { }
1156 
1158  void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null) { }
1159 
1161  void fillComplete(const RCP< ParameterList > &params=null) { }
1162 
1163 
1166 
1169  const RCP<const Map<LocalOrdinal,GlobalOrdinal,Node> > & rangeMap,
1170  const RCP<const Import<LocalOrdinal,GlobalOrdinal,Node> > &importer=Teuchos::null,
1171  const RCP<const Export<LocalOrdinal,GlobalOrdinal,Node> > &exporter=Teuchos::null,
1172  const RCP<ParameterList> &params=Teuchos::null) { }
1173 
1175 
1177 
1178 
1180  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const { return Teuchos::null; }
1181 
1183  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const { return Teuchos::null; }
1184 
1187 
1189  global_size_t getGlobalNumRows() const { return 0; }
1190 
1192  global_size_t getGlobalNumCols() const { return 0; }
1193 
1195  size_t getNodeNumRows() const { return 0; }
1196 
1198  size_t getNodeNumCols() const { return 0; }
1199 
1201  global_size_t getGlobalNumEntries() const { return 0; }
1202 
1204  size_t getNodeNumEntries() const { return 0; }
1205 
1207  size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const { return 0; }
1208 
1210  size_t getGlobalMaxNumRowEntries() const { return 0; }
1211 
1213  size_t getNodeMaxNumRowEntries() const { return 0; }
1214 
1216  bool isLocallyIndexed() const { return false; }
1217 
1219  bool isGloballyIndexed() const { return false; }
1220 
1222  bool isFillComplete() const { return false; }
1223 
1225  bool isFillActive() const { return false; }
1226 
1229 
1231  bool supportsRowViews() const { return false; }
1232 
1234  void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const { }
1235 
1238 
1240  void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const { }
1241 
1244 
1246 
1248 
1249 
1252 
1254  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const { return Teuchos::null; }
1255 
1257  const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const { return Teuchos::null; }
1258 
1260 
1262 
1263 
1265  std::string description() const { return std::string(""); }
1266 
1269 
1271 
1274 
1277 
1280 
1283 
1286 
1289 
1291  //{@
1292 
1295 
1299 
1303 
1307 
1311 
1313 
1314  // @}
1315 
1316  template<class Node2>
1318  clone (const RCP<Node2> &node2) const { return Teuchos::null; }
1319 
1321 
1322 
1324  bool hasMatrix() const { return false; }
1325 
1327  TpetraCrsMatrix(const Teuchos::RCP<Tpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > &mtx) {
1329  }
1330 
1333 
1336 
1337 #ifdef HAVE_XPETRA_KOKKOS_REFACTOR
1338 #ifdef HAVE_XPETRA_TPETRA
1339  local_matrix_type getLocalMatrix () const {
1341  return getTpetra_CrsMatrixNonConst()->getLocalMatrix();
1342  }
1343 
1344  void setAllValues (const typename local_matrix_type::row_map_type& ptr,
1345  const typename local_matrix_type::StaticCrsGraphType::entries_type::non_const_type& ind,
1346  const typename local_matrix_type::values_type& val) {
1347  getTpetra_CrsMatrixNonConst()->setAllValues(ptr,ind,val);
1348  }
1349 #endif
1350 #endif
1351 
1353  }; // TpetraCrsMatrix class (specialization for GO=long long, NO=EpetraNode)
1354 #endif
1355 
1356 #endif // HAVE_XPETRA_EPETRA
1357 
1358 } // Xpetra namespace
1359 
1360 #define XPETRA_TPETRACRSMATRIX_SHORT
1361 #endif // XPETRA_TPETRACRSMATRIX_HPP
KokkosClassic::Details::getNode
Teuchos::RCP< NodeType > getNode()
Definition: Kokkos_DefaultNode.hpp:71
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:611
Xpetra::TpetraImport
Definition: Xpetra_TpetraImport.hpp:72
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalNumRows
global_size_t getGlobalNumRows() const
Number of global elements in the row map of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1189
Xpetra::TpetraCrsMatrix::expertStaticFillComplete
void expertStaticFillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &importer=Teuchos::null, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > &exporter=Teuchos::null, const RCP< ParameterList > &params=Teuchos::null)
Expert static fill complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:320
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::rightScale
void rightScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Right scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:1288
Kokkos::Compat::KokkosSerialWrapperNode
Definition: Kokkos_SerialNode.hpp:57
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:999
Xpetra::TpetraCrsMatrix::supportsRowViews
bool supportsRowViews() const
Returns true if getLocalRowView() and getGlobalRowView() are valid for this class.
Definition: Xpetra_TpetraCrsMatrix.hpp:398
Xpetra::TpetraCrsMatrix::TpetraVectorClass
TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraVectorClass
Definition: Xpetra_TpetraCrsMatrix.hpp:87
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalNumRows
global_size_t getGlobalNumRows() const
Number of global elements in the row map of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:802
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getNodeNumEntries
size_t getNodeNumEntries() const
Returns the local number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:817
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &mtx)
TpetraCrsMatrix constructor to wrap a Tpetra::CrsMatrix object.
Definition: Xpetra_TpetraCrsMatrix.hpp:550
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getDomainMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
Returns the Map associated with the domain of this operator. This will be null until fillComplete() i...
Definition: Xpetra_TpetraCrsMatrix.hpp:867
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::insertLocalValues
void insertLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:731
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying a previously constructed graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:631
Xpetra
Xpetra namespace
Definition: Xpetra_BlockedCrsMatrix.hpp:86
Xpetra::TpetraCrsMatrix::getRowMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const
Returns the Map that describes the row distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:347
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:1014
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const
Get a copy of the diagonal entries owned by this node, with local row idices.
Definition: Xpetra_TpetraCrsMatrix.hpp:1276
Xpetra::TpetraCrsMatrix::leftScale
void leftScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Left scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:466
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:163
Xpetra::global_size_t
size_t global_size_t
Global size_t object.
Definition: Xpetra_ConfigDefs.hpp:170
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::isFillActive
bool isFillActive() const
Returns true if the matrix is in edit mode.
Definition: Xpetra_TpetraCrsMatrix.hpp:838
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::allocateAllValues
void allocateAllValues(size_t numNonZeros, ArrayRCP< size_t > &rowptr, ArrayRCP< LocalOrdinal > &colind, ArrayRCP< Scalar > &values)
Allocates and returns ArrayRCPs of the Crs arrays — This is an Xpetra-only routine.
Definition: Xpetra_TpetraCrsMatrix.hpp:751
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::insertGlobalValues
void insertGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:728
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getTpetra_CrsMatrix
RCP< const Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrix() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1332
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag, const Teuchos::ArrayView< const size_t > &offsets) const
Get a copy of the diagonal entries owned by this node, with local row indices.
Definition: Xpetra_TpetraCrsMatrix.hpp:1282
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getNodeMaxNumRowEntries
size_t getNodeMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on this node.
Definition: Xpetra_TpetraCrsMatrix.hpp:1213
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:638
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag, const Teuchos::ArrayView< const size_t > &offsets) const
Get a copy of the diagonal entries owned by this node, with local row indices.
Definition: Xpetra_TpetraCrsMatrix.hpp:895
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::isFillComplete
bool isFillComplete() const
Returns true if the matrix is in compute mode, i.e. if fillComplete() has been called.
Definition: Xpetra_TpetraCrsMatrix.hpp:1222
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getRowMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const
Returns the Map that describes the row distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1180
Xpetra::TpetraCrsMatrix::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Import.
Definition: Xpetra_TpetraCrsMatrix.hpp:484
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:667
Xpetra::CrsMatrix::node_type
Node node_type
Definition: Xpetra_CrsMatrix.hpp:81
Xpetra::toTpetra
RCP< const Tpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > toTpetra(const RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph)
Definition: Xpetra_TpetraCrsGraph.hpp:338
Xpetra::DistObject< char, LocalOrdinal, GlobalOrdinal, Node >
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::supportsRowViews
bool supportsRowViews() const
Returns true if getLocalRowView() and getGlobalRowView() are valid for this class.
Definition: Xpetra_TpetraCrsMatrix.hpp:844
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getLocalRowCopy
void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const
Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calli...
Definition: Xpetra_TpetraCrsMatrix.hpp:1234
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::fillComplete
void fillComplete(const RCP< ParameterList > &params=null)
Signal that data entry is complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:1161
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::setAllValues
void setAllValues(const ArrayRCP< size_t > &rowptr, const ArrayRCP< LocalOrdinal > &colind, const ArrayRCP< Scalar > &values)
Sets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:754
Xpetra::MultiVector
Definition: Xpetra_MultiVector.hpp:76
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getFrobeniusNorm
ScalarTraits< Scalar >::magnitudeType getFrobeniusNorm() const
Returns the Frobenius norm of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1228
Xpetra::TpetraCrsMatrix::clone
RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
Definition: Xpetra_TpetraCrsMatrix.hpp:536
Xpetra::TpetraCrsMatrix::insertLocalValues
void insertLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:253
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Import.
Definition: Xpetra_TpetraCrsMatrix.hpp:1297
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getNodeNumRows
size_t getNodeNumRows() const
Returns the number of matrix rows owned on the calling node.
Definition: Xpetra_TpetraCrsMatrix.hpp:808
Teuchos::ScalarTraits::magnitude
static magnitudeType magnitude(T a)
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::haveGlobalConstants
bool haveGlobalConstants() const
Returns true if globalConstants have been computed; false otherwise.
Definition: Xpetra_TpetraCrsMatrix.hpp:759
Xpetra::TpetraCrsMatrix::fillComplete
void fillComplete(const RCP< ParameterList > &params=null)
Signal that data entry is complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:308
Xpetra::DynamicProfile
Definition: Xpetra_ConfigDefs.hpp:187
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >
Definition: Xpetra_TpetraCrsMatrix.hpp:586
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getNodeNumCols
size_t getNodeNumCols() const
Returns the number of columns connected to the locally owned rows of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:811
Xpetra::TpetraCrsMatrix::getNumEntriesInLocalRow
size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const
Returns the current number of entries on this node in the specified local row.
Definition: Xpetra_TpetraCrsMatrix.hpp:374
Xpetra::TpetraCrsMatrix::getFrobeniusNorm
ScalarTraits< Scalar >::magnitudeType getFrobeniusNorm() const
Returns the Frobenius norm of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:395
XPETRA_DYNAMIC_CAST
#define XPETRA_DYNAMIC_CAST(type, obj, newObj, exceptionMsg)
Definition: Xpetra_Exceptions.hpp:58
Teuchos::ArrayView::size_type
Ordinal size_type
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::LocalOrdinal
int LocalOrdinal
Definition: Xpetra_TpetraCrsMatrix.hpp:977
Xpetra::TpetraCrsMatrix::mtx_
RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > mtx_
Definition: Xpetra_TpetraCrsMatrix.hpp:576
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::replaceLocalValues
void replaceLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:1126
Xpetra_TpetraMultiVector.hpp
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getNodeNumEntries
size_t getNodeNumEntries() const
Returns the local number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1204
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:116
Xpetra::TpetraCrsMatrix::getNodeNumEntries
size_t getNodeNumEntries() const
Returns the local number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:371
Xpetra::Export
Definition: Xpetra_Export.hpp:62
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying a previously constructed graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:120
Xpetra::TpetraCrsMatrix::getLocalRowView
void getLocalRowView(LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of local indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:410
Xpetra::TpetraCrsMatrix::describe
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with some verbosity level to an FancyOStream object.
Definition: Xpetra_TpetraCrsMatrix.hpp:435
Teuchos::NO_TRANS
NO_TRANS
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:1055
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::isGloballyIndexed
bool isGloballyIndexed() const
If matrix indices are in the global range, this function returns true. Otherwise, this function retur...
Definition: Xpetra_TpetraCrsMatrix.hpp:832
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::scale
void scale(const Scalar &alpha)
Scale the current values of a matrix, this = alpha*this.
Definition: Xpetra_TpetraCrsMatrix.hpp:1135
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalMaxNumRowEntries
size_t getGlobalMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on all nodes.
Definition: Xpetra_TpetraCrsMatrix.hpp:823
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &RowExporter, const Teuchos::RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > DomainExporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:184
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Export.
Definition: Xpetra_TpetraCrsMatrix.hpp:914
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::leftScale
void leftScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Left scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:1285
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::insertLocalValues
void insertLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:1119
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getCrsGraph
RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > getCrsGraph() const
Returns the CrsGraph associated with this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1186
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraExportClass
TpetraExport< LocalOrdinal, GlobalOrdinal, Node > TpetraExportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:984
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Import.
Definition: Xpetra_TpetraCrsMatrix.hpp:910
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getMap
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
Implements DistObject interface.
Definition: Xpetra_TpetraCrsMatrix.hpp:1294
Xpetra::TpetraCrsMatrix::getColMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const
Returns the Map that describes the column distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:350
Xpetra::TpetraCrsMatrix::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Import (using an Exporter).
Definition: Xpetra_TpetraCrsMatrix.hpp:506
Xpetra::toXpetra
RCP< const CrsGraph< int, GlobalOrdinal, Node > > toXpetra(const Epetra_CrsGraph &g)
Definition: Xpetra_EpetraCrsGraph.cpp:168
Teuchos::ParameterList::get
T & get(const std::string &name, T def_value)
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::haveGlobalConstants
bool haveGlobalConstants() const
Returns true if globalConstants have been computed; false otherwise.
Definition: Xpetra_TpetraCrsMatrix.hpp:1147
Xpetra::TpetraCrsMatrix::getGlobalNumEntries
global_size_t getGlobalNumEntries() const
Returns the global number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:368
Xpetra::TpetraCrsMatrix::setAllToScalar
void setAllToScalar(const Scalar &alpha)
Set all matrix entries equal to scalarThis.
Definition: Xpetra_TpetraCrsMatrix.hpp:275
rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::rightScale
void rightScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Right scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:901
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::apply
void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const
Computes the sparse matrix-multivector multiplication.
Definition: Xpetra_TpetraCrsMatrix.hpp:1251
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::expertStaticFillComplete
void expertStaticFillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &importer=Teuchos::null, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > &exporter=Teuchos::null, const RCP< ParameterList > &params=Teuchos::null)
Expert static fill complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:1168
Teuchos::EVerbosityLevel
EVerbosityLevel
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::setAllToScalar
void setAllToScalar(const Scalar &alpha)
Set all matrix entries equal to scalarThis.
Definition: Xpetra_TpetraCrsMatrix.hpp:1132
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::describe
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with some verbosity level to an FancyOStream object.
Definition: Xpetra_TpetraCrsMatrix.hpp:1268
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getMap
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
Implements DistObject interface.
Definition: Xpetra_TpetraCrsMatrix.hpp:907
Xpetra::TpetraCrsMatrix::replaceGlobalValues
void replaceGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:256
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &mtx)
TpetraCrsMatrix constructor to wrap a Tpetra::CrsMatrix object.
Definition: Xpetra_TpetraCrsMatrix.hpp:940
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getCrsGraph
RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > getCrsGraph() const
Returns the CrsGraph associated with this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:799
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::replaceDomainMapAndImporter
void replaceDomainMapAndImporter(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newDomainMap, Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &newImporter)
Replaces the current domainMap and importer with the user-specified objects.
Definition: Xpetra_TpetraCrsMatrix.hpp:778
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getNodeNumCols
size_t getNodeNumCols() const
Returns the number of columns connected to the locally owned rows of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1198
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalRowView
void getGlobalRowView(GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of global indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:850
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying (possibly different) number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:108
Xpetra::TpetraCrsMatrix::TpetraExportClass
TpetraExport< LocalOrdinal, GlobalOrdinal, Node > TpetraExportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:89
Xpetra::TpetraCrsMatrix::isGloballyIndexed
bool isGloballyIndexed() const
If matrix indices are in the global range, this function returns true. Otherwise, this function retur...
Definition: Xpetra_TpetraCrsMatrix.hpp:386
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::resumeFill
void resumeFill(const RCP< ParameterList > &params=null)
Definition: Xpetra_TpetraCrsMatrix.hpp:1155
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getRangeMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
Returns the Map associated with the range of this operator, which must be compatible with Y....
Definition: Xpetra_TpetraCrsMatrix.hpp:1257
Teuchos::ArrayView
Xpetra::Map
Definition: Xpetra_Map.hpp:90
Xpetra::Import
Definition: Xpetra_Import.hpp:62
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::description
std::string description() const
A simple one-line description of this object.
Definition: Xpetra_TpetraCrsMatrix.hpp:1265
Xpetra::CombineMode
CombineMode
Xpetra::Combine Mode enumerable type.
Definition: Xpetra_ConfigDefs.hpp:214
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:104
Teuchos::RCP
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:647
Xpetra::TpetraCrsMatrix::description
std::string description() const
A simple one-line description of this object.
Definition: Xpetra_TpetraCrsMatrix.hpp:432
Xpetra::TpetraCrsMatrix::getLocalRowCopy
void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const
Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calli...
Definition: Xpetra_TpetraCrsMatrix.hpp:401
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getLocalRowView
void getLocalRowView(LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of local indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:856
Xpetra::TpetraExport
Definition: Xpetra_TpetraExport.hpp:73
Xpetra::TpetraCrsMatrix::getGlobalRowView
void getGlobalRowView(GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of global indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:404
Xpetra::TpetraCrsMatrix::removeEmptyProcessesInPlace
void removeEmptyProcessesInPlace(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newMap)
Definition: Xpetra_TpetraCrsMatrix.hpp:527
Xpetra::TpetraCrsMatrix
Definition: Xpetra_TpetraCrsMatrix.hpp:81
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalMaxNumRowEntries
size_t getGlobalMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on all nodes.
Definition: Xpetra_TpetraCrsMatrix.hpp:1210
Xpetra::TpetraCrsMatrix::TpetraCrsMatrixClass
TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraCrsMatrixClass
Definition: Xpetra_TpetraCrsMatrix.hpp:86
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getColMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const
Returns the Map that describes the column distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1183
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::description
std::string description() const
A simple one-line description of this object.
Definition: Xpetra_TpetraCrsMatrix.hpp:878
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying (possibly different) number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:1004
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::~TpetraCrsMatrix
virtual ~TpetraCrsMatrix()
Destructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:720
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getRangeMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
Returns the Map associated with the range of this operator, which must be compatible with Y....
Definition: Xpetra_TpetraCrsMatrix.hpp:870
Xpetra_TpetraMap.hpp
Xpetra::TpetraCrsMatrix::resumeFill
void resumeFill(const RCP< ParameterList > &params=null)
Definition: Xpetra_TpetraCrsMatrix.hpp:302
Xpetra::TpetraCrsMatrix::getGlobalNumCols
global_size_t getGlobalNumCols() const
Number of global columns in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:359
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getAllValues
void getAllValues(ArrayRCP< const size_t > &rowptr, ArrayRCP< const LocalOrdinal > &colind, ArrayRCP< const Scalar > &values) const
Gets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:1145
Xpetra::Vector
Definition: Xpetra_Vector_fwd.hpp:51
Xpetra::TpetraCrsMatrix::apply
void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const
Computes the sparse matrix-multivector multiplication.
Definition: Xpetra_TpetraCrsMatrix.hpp:418
Teuchos::ArrayRCP
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::apply
void apply(const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &X, MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=ScalarTraits< Scalar >::one(), Scalar beta=ScalarTraits< Scalar >::zero()) const
Computes the sparse matrix-multivector multiplication.
Definition: Xpetra_TpetraCrsMatrix.hpp:864
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::supportsRowViews
bool supportsRowViews() const
Returns true if getLocalRowView() and getGlobalRowView() are valid for this class.
Definition: Xpetra_TpetraCrsMatrix.hpp:1231
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getNumEntriesInLocalRow
size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const
Returns the current number of entries on this node in the specified local row.
Definition: Xpetra_TpetraCrsMatrix.hpp:820
Xpetra::TpetraCrsMatrix::getLocalDiagOffsets
void getLocalDiagOffsets(Teuchos::ArrayRCP< size_t > &offsets) const
Get offsets of the diagonal entries in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:452
Xpetra::TpetraCrsMatrix::getGlobalMaxNumRowEntries
size_t getGlobalMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on all nodes.
Definition: Xpetra_TpetraCrsMatrix.hpp:377
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::fillComplete
void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null)
Signal that data entry is complete, specifying domain and range maps.
Definition: Xpetra_TpetraCrsMatrix.hpp:1158
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::scale
void scale(const Scalar &alpha)
Scale the current values of a matrix, this = alpha*this.
Definition: Xpetra_TpetraCrsMatrix.hpp:747
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::clone
RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
Definition: Xpetra_TpetraCrsMatrix.hpp:931
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const TpetraCrsMatrix &matrix)
Deep copy constructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:1273
Teuchos::basic_FancyOStream
Teuchos::ArrayView::size
size_type size() const
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraVectorClass
TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraVectorClass
Definition: Xpetra_TpetraCrsMatrix.hpp:594
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Export (using an Importer).
Definition: Xpetra_TpetraCrsMatrix.hpp:922
XPETRA_TPETRA_ETI_EXCEPTION
#define XPETRA_TPETRA_ETI_EXCEPTION(cl, obj, go, node)
Definition: Xpetra_Exceptions.hpp:79
Xpetra::TpetraCrsMatrix::getCrsGraph
RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > getCrsGraph() const
Returns the CrsGraph associated with this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:353
Xpetra::TpetraCrsMatrix::allocateAllValues
void allocateAllValues(size_t numNonZeros, ArrayRCP< size_t > &rowptr, ArrayRCP< LocalOrdinal > &colind, ArrayRCP< Scalar > &values)
Allocates and returns ArrayRCPs of the Crs arrays — This is an Xpetra-only routine.
Definition: Xpetra_TpetraCrsMatrix.hpp:282
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getLocalRowCopy
void getLocalRowCopy(LocalOrdinal LocalRow, const ArrayView< LocalOrdinal > &Indices, const ArrayView< Scalar > &Values, size_t &NumEntries) const
Extract a list of entries in a specified local row of the matrix. Put into storage allocated by calli...
Definition: Xpetra_TpetraCrsMatrix.hpp:847
Xpetra::CrsGraph
Definition: Xpetra_CrsGraph.hpp:80
Xpetra::TpetraMap
Definition: Xpetra_TpetraMap.hpp:79
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::isGloballyIndexed
bool isGloballyIndexed() const
If matrix indices are in the global range, this function returns true. Otherwise, this function retur...
Definition: Xpetra_TpetraCrsMatrix.hpp:1219
Xpetra::TpetraCrsMatrix::getTpetra_CrsMatrixNonConst
RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrixNonConst() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:556
Teuchos::ScalarTraits
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::setAllValues
void setAllValues(const ArrayRCP< size_t > &rowptr, const ArrayRCP< LocalOrdinal > &colind, const ArrayRCP< Scalar > &values)
Sets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:1142
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraImportClass
TpetraImport< LocalOrdinal, GlobalOrdinal, Node > TpetraImportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:595
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::hasMatrix
bool hasMatrix() const
Does this have an underlying matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1324
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalNumCols
global_size_t getGlobalNumCols() const
Number of global columns in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1192
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalRowCopy
void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const
Extract a list of entries in a specified global row of this matrix. Put into pre-allocated storage.
Definition: Xpetra_TpetraCrsMatrix.hpp:1240
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::expertStaticFillComplete
void expertStaticFillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &importer=Teuchos::null, const RCP< const Export< LocalOrdinal, GlobalOrdinal, Node > > &exporter=Teuchos::null, const RCP< ParameterList > &params=Teuchos::null)
Expert static fill complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:781
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::replaceGlobalValues
void replaceGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:1122
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const
Get a copy of the diagonal entries owned by this node, with local row idices.
Definition: Xpetra_TpetraCrsMatrix.hpp:889
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getNodeNumRows
size_t getNodeNumRows() const
Returns the number of matrix rows owned on the calling node.
Definition: Xpetra_TpetraCrsMatrix.hpp:1195
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:1026
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:656
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Import (using an Exporter).
Definition: Xpetra_TpetraCrsMatrix.hpp:918
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:1009
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getNodeMaxNumRowEntries
size_t getNodeMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on this node.
Definition: Xpetra_TpetraCrsMatrix.hpp:826
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Export (using an Importer).
Definition: Xpetra_TpetraCrsMatrix.hpp:1309
Xpetra::TpetraCrsMatrix::isFillComplete
bool isFillComplete() const
Returns true if the matrix is in compute mode, i.e. if fillComplete() has been called.
Definition: Xpetra_TpetraCrsMatrix.hpp:389
Xpetra::TpetraCrsMatrix::getNodeMaxNumRowEntries
size_t getNodeMaxNumRowEntries() const
Returns the maximum number of entries across all rows/columns on this node.
Definition: Xpetra_TpetraCrsMatrix.hpp:380
Xpetra_TpetraVector.hpp
Xpetra::CrsMatrix::global_ordinal_type
GlobalOrdinal global_ordinal_type
Definition: Xpetra_CrsMatrix.hpp:80
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraVectorClass
TpetraVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraVectorClass
Definition: Xpetra_TpetraCrsMatrix.hpp:982
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying (possibly different) number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:616
Teuchos::RCP::is_null
bool is_null() const
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::resumeFill
void resumeFill(const RCP< ParameterList > &params=null)
Definition: Xpetra_TpetraCrsMatrix.hpp:768
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::isFillActive
bool isFillActive() const
Returns true if the matrix is in edit mode.
Definition: Xpetra_TpetraCrsMatrix.hpp:1225
Xpetra_TpetraCrsGraph.hpp
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::removeEmptyProcessesInPlace
void removeEmptyProcessesInPlace(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newMap)
Definition: Xpetra_TpetraCrsMatrix.hpp:925
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Export.
Definition: Xpetra_TpetraCrsMatrix.hpp:1301
Xpetra_TpetraConfigDefs.hpp
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::describe
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
Print the object with some verbosity level to an FancyOStream object.
Definition: Xpetra_TpetraCrsMatrix.hpp:881
Teuchos::ArrayRCP::resize
void resize(const size_type n, const T &val=T())
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, const ArrayRCP< const size_t > &NumEntriesPerRowToAlloc, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and number of entries in each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:626
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrixClass
TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraCrsMatrixClass
Definition: Xpetra_TpetraCrsMatrix.hpp:593
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getColMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getColMap() const
Returns the Map that describes the column distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:796
Xpetra::TpetraVector
Definition: Xpetra_TpetraVector_fwd.hpp:51
Xpetra::TpetraCrsMatrix::haveGlobalConstants
bool haveGlobalConstants() const
Returns true if globalConstants have been computed; false otherwise.
Definition: Xpetra_TpetraCrsMatrix.hpp:293
Xpetra::TpetraCrsMatrix::getAllValues
void getAllValues(ArrayRCP< const size_t > &rowptr, ArrayRCP< const LocalOrdinal > &colind, ArrayRCP< const Scalar > &values) const
Gets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:290
Xpetra::TpetraCrsMatrix::scale
void scale(const Scalar &alpha)
Scale the current values of a matrix, this = alpha*this.
Definition: Xpetra_TpetraCrsMatrix.hpp:278
Xpetra::TpetraCrsMatrix::isLocallyIndexed
bool isLocallyIndexed() const
If matrix indices are in the local range, this function returns true. Otherwise, this function return...
Definition: Xpetra_TpetraCrsMatrix.hpp:383
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::hasMatrix
bool hasMatrix() const
Does this have an underlying matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:937
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getLocalDiagOffsets
void getLocalDiagOffsets(Teuchos::ArrayRCP< size_t > &offsets) const
Get offsets of the diagonal entries in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1279
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::fillComplete
void fillComplete(const RCP< ParameterList > &params=null)
Signal that data entry is complete.
Definition: Xpetra_TpetraCrsMatrix.hpp:774
Xpetra::TpetraCrsMatrix::replaceLocalValues
void replaceLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:260
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::doImport
void doImport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &source, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Import (using an Exporter).
Definition: Xpetra_TpetraCrsMatrix.hpp:1305
Xpetra::TpetraCrsMatrix::getNodeNumCols
size_t getNodeNumCols() const
Returns the number of columns connected to the locally owned rows of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:365
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::~TpetraCrsMatrix
virtual ~TpetraCrsMatrix()
Destructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:1108
Xpetra::TpetraCrsMatrix::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, CombineMode CM)
Export (using an Importer).
Definition: Xpetra_TpetraCrsMatrix.hpp:517
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::Node
EpetraNode Node
Definition: Xpetra_TpetraCrsMatrix.hpp:979
Xpetra_Exceptions.hpp
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::isLocallyIndexed
bool isLocallyIndexed() const
If matrix indices are in the local range, this function returns true. Otherwise, this function return...
Definition: Xpetra_TpetraCrsMatrix.hpp:829
Xpetra::TpetraCrsMatrix::replaceDomainMapAndImporter
void replaceDomainMapAndImporter(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newDomainMap, Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &newImporter)
Replaces the current domainMap and importer with the user-specified objects.
Definition: Xpetra_TpetraCrsMatrix.hpp:312
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalRowCopy
void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const
Extract a list of entries in a specified global row of this matrix. Put into pre-allocated storage.
Definition: Xpetra_TpetraCrsMatrix.hpp:853
Xpetra::TpetraCrsMatrix::isFillActive
bool isFillActive() const
Returns true if the matrix is in edit mode.
Definition: Xpetra_TpetraCrsMatrix.hpp:392
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::Node
EpetraNode Node
Definition: Xpetra_TpetraCrsMatrix.hpp:591
Xpetra::TpetraCrsMatrix::setAllValues
void setAllValues(const ArrayRCP< size_t > &rowptr, const ArrayRCP< LocalOrdinal > &colind, const ArrayRCP< Scalar > &values)
Sets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:286
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::fillComplete
void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null)
Signal that data entry is complete, specifying domain and range maps.
Definition: Xpetra_TpetraCrsMatrix.hpp:771
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getRowMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRowMap() const
Returns the Map that describes the row distribution in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:793
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:112
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &mtx)
TpetraCrsMatrix constructor to wrap a Tpetra::CrsMatrix object.
Definition: Xpetra_TpetraCrsMatrix.hpp:1327
Xpetra::TpetraCrsMatrix::getGlobalRowCopy
void getGlobalRowCopy(GlobalOrdinal GlobalRow, const ArrayView< GlobalOrdinal > &indices, const ArrayView< Scalar > &values, size_t &numEntries) const
Extract a list of entries in a specified global row of this matrix. Put into pre-allocated storage.
Definition: Xpetra_TpetraCrsMatrix.hpp:407
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getTpetra_CrsMatrixNonConst
RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrixNonConst() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:948
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getFrobeniusNorm
ScalarTraits< Scalar >::magnitudeType getFrobeniusNorm() const
Returns the Frobenius norm of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:841
Teuchos::RCP::get
T * get() const
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::replaceLocalValues
void replaceLocalValues(LocalOrdinal localRow, const ArrayView< const LocalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using local IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:738
Xpetra::EpetraNode
Kokkos::Compat::KokkosSerialWrapperNode EpetraNode
Definition: Xpetra_Map.hpp:74
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::replaceDomainMapAndImporter
void replaceDomainMapAndImporter(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newDomainMap, Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > &newImporter)
Replaces the current domainMap and importer with the user-specified objects.
Definition: Xpetra_TpetraCrsMatrix.hpp:1165
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::LocalOrdinal
int LocalOrdinal
Definition: Xpetra_TpetraCrsMatrix.hpp:589
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraImportClass
TpetraImport< LocalOrdinal, GlobalOrdinal, Node > TpetraImportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:983
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const TpetraCrsMatrix &matrix)
Deep copy constructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:886
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::insertGlobalValues
void insertGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:1116
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::replaceGlobalValues
void replaceGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Replace matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:734
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getNumEntriesInLocalRow
size_t getNumEntriesInLocalRow(LocalOrdinal localRow) const
Returns the current number of entries on this node in the specified local row.
Definition: Xpetra_TpetraCrsMatrix.hpp:1207
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:126
Teuchos::ScalarTraits::magnitudeType
T magnitudeType
Xpetra::TpetraCrsMatrix::TpetraImportClass
TpetraImport< LocalOrdinal, GlobalOrdinal, Node > TpetraImportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:88
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getTpetra_CrsMatrix
RCP< const Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrix() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:945
Xpetra::TpetraCrsMatrix::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag) const
Get a copy of the diagonal entries owned by this node, with local row idices.
Definition: Xpetra_TpetraCrsMatrix.hpp:444
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalRowView
void getGlobalRowView(GlobalOrdinal GlobalRow, ArrayView< const GlobalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of global indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1237
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getLocalRowView
void getLocalRowView(LocalOrdinal LocalRow, ArrayView< const LocalOrdinal > &indices, ArrayView< const Scalar > &values) const
Extract a const, non-persisting view of local indices in a specified row of the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1243
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const TpetraCrsMatrix &matrix)
Deep copy constructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:440
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrixClass
TpetraCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > TpetraCrsMatrixClass
Definition: Xpetra_TpetraCrsMatrix.hpp:981
Xpetra::TpetraCrsMatrix::getNodeNumRows
size_t getNodeNumRows() const
Returns the number of matrix rows owned on the calling node.
Definition: Xpetra_TpetraCrsMatrix.hpp:362
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:1035
Xpetra::TpetraCrsMatrix::hasMatrix
bool hasMatrix() const
Does this have an underlying matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:545
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::leftScale
void leftScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Left scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:898
Xpetra::TpetraCrsMatrix::getGlobalNumRows
global_size_t getGlobalNumRows() const
Number of global elements in the row map of this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:356
Xpetra::TpetraCrsMatrix::~TpetraCrsMatrix
virtual ~TpetraCrsMatrix()
Destructor.
Definition: Xpetra_TpetraCrsMatrix.hpp:242
Xpetra::TpetraCrsMatrix::getDomainMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
Returns the Map associated with the domain of this operator. This will be null until fillComplete() i...
Definition: Xpetra_TpetraCrsMatrix.hpp:421
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::clone
RCP< CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone(const RCP< Node2 > &node2) const
Definition: Xpetra_TpetraCrsMatrix.hpp:1318
Teuchos::Describable::verbLevel_default
static const EVerbosityLevel verbLevel_default
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraExportClass
TpetraExport< LocalOrdinal, GlobalOrdinal, Node > TpetraExportClass
Definition: Xpetra_TpetraCrsMatrix.hpp:596
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::allocateAllValues
void allocateAllValues(size_t numNonZeros, ArrayRCP< size_t > &rowptr, ArrayRCP< LocalOrdinal > &colind, ArrayRCP< Scalar > &values)
Allocates and returns ArrayRCPs of the Crs arrays — This is an Xpetra-only routine.
Definition: Xpetra_TpetraCrsMatrix.hpp:1139
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::GlobalOrdinal
int GlobalOrdinal
Definition: Xpetra_TpetraCrsMatrix.hpp:590
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::removeEmptyProcessesInPlace
void removeEmptyProcessesInPlace(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &newMap)
Definition: Xpetra_TpetraCrsMatrix.hpp:1312
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::isLocallyIndexed
bool isLocallyIndexed() const
If matrix indices are in the local range, this function returns true. Otherwise, this function return...
Definition: Xpetra_TpetraCrsMatrix.hpp:1216
Xpetra::TpetraCrsMatrix::insertGlobalValues
void insertGlobalValues(GlobalOrdinal globalRow, const ArrayView< const GlobalOrdinal > &cols, const ArrayView< const Scalar > &vals)
Insert matrix entries, using global IDs.
Definition: Xpetra_TpetraCrsMatrix.hpp:250
Xpetra::TpetraCrsMatrix::rightScale
void rightScale(const Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &x)
Right scale operator with given vector values.
Definition: Xpetra_TpetraCrsMatrix.hpp:472
Xpetra::CrsMatrix::local_ordinal_type
LocalOrdinal local_ordinal_type
Definition: Xpetra_CrsMatrix.hpp:79
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getTpetra_CrsMatrixNonConst
RCP< Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrixNonConst() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1335
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalNumCols
global_size_t getGlobalNumCols() const
Number of global columns in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:805
TEUCHOS_TEST_FOR_EXCEPTION
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::GlobalOrdinal
long long GlobalOrdinal
Definition: Xpetra_TpetraCrsMatrix.hpp:978
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getAllValues
void getAllValues(ArrayRCP< const size_t > &rowptr, ArrayRCP< const LocalOrdinal > &colind, ArrayRCP< const Scalar > &values) const
Gets the 1D pointer arrays of the graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:757
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rowMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &colMap, size_t maxNumEntriesPerRow, ProfileType pftype=DynamicProfile, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying column Map and fixed number of entries for each row.
Definition: Xpetra_TpetraCrsMatrix.hpp:621
XPETRA_MONITOR
#define XPETRA_MONITOR(funcName)
Definition: Xpetra_ConfigDefs.hpp:128
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getDomainMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getDomainMap() const
Returns the Map associated with the domain of this operator. This will be null until fillComplete() i...
Definition: Xpetra_TpetraCrsMatrix.hpp:1254
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::getGlobalNumEntries
global_size_t getGlobalNumEntries() const
Returns the global number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:1201
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::setAllToScalar
void setAllToScalar(const Scalar &alpha)
Set all matrix entries equal to scalarThis.
Definition: Xpetra_TpetraCrsMatrix.hpp:744
Xpetra::TpetraCrsMatrix::fillComplete
void fillComplete(const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const RCP< ParameterList > &params=null)
Signal that data entry is complete, specifying domain and range maps.
Definition: Xpetra_TpetraCrsMatrix.hpp:305
Teuchos::ETransp
ETransp
Xpetra_CrsMatrix.hpp
Xpetra::TpetraCrsMatrix::doExport
void doExport(const DistObject< char, LocalOrdinal, GlobalOrdinal, Node > &dest, const Import< LocalOrdinal, GlobalOrdinal, Node > &importer, CombineMode CM)
Export.
Definition: Xpetra_TpetraCrsMatrix.hpp:495
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::isFillComplete
bool isFillComplete() const
Returns true if the matrix is in compute mode, i.e. if fillComplete() has been called.
Definition: Xpetra_TpetraCrsMatrix.hpp:835
Xpetra::TpetraCrsMatrix::getRangeMap
const RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getRangeMap() const
Returns the Map associated with the range of this operator, which must be compatible with Y....
Definition: Xpetra_TpetraCrsMatrix.hpp:424
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getLocalDiagOffsets
void getLocalDiagOffsets(Teuchos::ArrayRCP< size_t > &offsets) const
Get offsets of the diagonal entries in the matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:892
Xpetra::CrsMatrix
Definition: Xpetra_CrsMatrix.hpp:73
Xpetra::TpetraCrsMatrix::getTpetra_CrsMatrix
RCP< const Tpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getTpetra_CrsMatrix() const
Get the underlying Tpetra matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:553
Xpetra::ProfileType
ProfileType
Definition: Xpetra_ConfigDefs.hpp:185
Xpetra::TpetraCrsMatrix::getLocalDiagCopy
void getLocalDiagCopy(Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diag, const Teuchos::ArrayView< const size_t > &offsets) const
Get a copy of the diagonal entries owned by this node, with local row indices.
Definition: Xpetra_TpetraCrsMatrix.hpp:458
Xpetra::TpetraCrsMatrix::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Export< LocalOrdinal, GlobalOrdinal, Node > &exporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap=Teuchos::null, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap=Teuchos::null, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor for a fused export.
Definition: Xpetra_TpetraCrsMatrix.hpp:146
Xpetra::TpetraCrsMatrix::getMap
Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > getMap() const
Implements DistObject interface.
Definition: Xpetra_TpetraCrsMatrix.hpp:481
Xpetra::TpetraCrsMatrix< Scalar, int, int, EpetraNode >::getGlobalNumEntries
global_size_t getGlobalNumEntries() const
Returns the global number of entries in this matrix.
Definition: Xpetra_TpetraCrsMatrix.hpp:814
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsGraph< LocalOrdinal, GlobalOrdinal, Node > > &graph, const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
Constructor specifying a previously constructed graph.
Definition: Xpetra_TpetraCrsMatrix.hpp:1019
Xpetra::TpetraCrsMatrix< Scalar, int, long long, EpetraNode >::TpetraCrsMatrix
TpetraCrsMatrix(const Teuchos::RCP< const CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &sourceMatrix, const Import< LocalOrdinal, GlobalOrdinal, Node > &RowImporter, const Teuchos::RCP< const Import< LocalOrdinal, GlobalOrdinal, Node > > DomainImporter, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &domainMap, const Teuchos::RCP< const Map< LocalOrdinal, GlobalOrdinal, Node > > &rangeMap, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor for a fused import.
Definition: Xpetra_TpetraCrsMatrix.hpp:1044