Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_MatrixView.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
47// WARNING: This code is experimental. Backwards compatibility should not be expected.
48
49#ifndef XPETRA_MATRIXVIEW_HPP
50#define XPETRA_MATRIXVIEW_HPP
51
52#include <Teuchos_Describable.hpp>
53#include <KokkosCompat_DefaultNode.hpp>
54
55#include "Xpetra_ConfigDefs.hpp"
56#include "Xpetra_Map.hpp"
57
62namespace Xpetra {
63
64 template <class Scalar,
65 class LocalOrdinal,
66 class GlobalOrdinal,
68 class MatrixView { // TODO : virtual public Teuchos::Describable {
70
71 public:
72
74
75
77 MatrixView(const RCP<const Map> &rowMap, const RCP<const Map> &colMap)
78 : rowMap_ (rowMap), colMap_(colMap), maxEigValueEstimate_(-Teuchos::ScalarTraits<Scalar>::one())
79 { }
80
82 virtual ~MatrixView() {}
83
85
87
88
89 const RCP<const Map> & GetRowMap() const { return rowMap_; }
90
92 const RCP<const Map> & GetColMap() const { return colMap_; }
93
95 void SetRowMap(const RCP<const Map> & rowMap) { rowMap_ = rowMap; }
96
98 void SetColMap(const RCP<const Map> & colMap) { colMap_ = colMap; }
100
102 void SetMaxEigenvalueEstimate(Scalar const &sigma) { maxEigValueEstimate_ = sigma; }
103
106
107 private:
110
112
113 }; // class MatrixView
114
115} // namespace Xpetra
116
117#define XPETRA_MATRIXVIEW_SHORT
118#endif //XPETRA_MATRIX_VIEW_DECL_HPP
void SetColMap(const RCP< const Map > &colMap)
Set the Map that describes the column distribution in this matrix.
Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > Map
const RCP< const Map > & GetColMap() const
Returns the Map that describes the column distribution in this matrix.
void SetMaxEigenvalueEstimate(Scalar const &sigma)
Set an maximum eigenvalue estimate for this matrix.
RCP< const Map > colMap_
MatrixView(const RCP< const Map > &rowMap, const RCP< const Map > &colMap)
Constructor.
Scalar GetMaxEigenvalueEstimate() const
Return the maximum eigenvalue estimate for this matrix.
virtual ~MatrixView()
Destructor.
const RCP< const Map > & GetRowMap() const
Returns the Map that describes the row distribution in this matrix.
RCP< const Map > rowMap_
void SetRowMap(const RCP< const Map > &rowMap)
Returns the Map that describes the row distribution in this matrix.
Xpetra namespace