Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_ProductEpetraOperator.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Stokhos Package
4 //
5 // Copyright 2009 NTESS and the Stokhos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef STOKHOS_PRODUCT_EPETRA_OPERATOR_HPP
11 #define STOKHOS_PRODUCT_EPETRA_OPERATOR_HPP
12 
15 #include "Epetra_Map.h"
16 #include "EpetraExt_MultiComm.h"
17 
18 namespace Stokhos {
19 
24  public virtual ProductContainer<Epetra_Operator>,
25  public virtual Epetra_Operator {
26  public:
27 
29  typedef double value_type;
30 
32  typedef int ordinal_type;
33 
39  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
43 
48  /*
49  * This version supplies the generated product map \c product_map
50  */
52  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
55  const Teuchos::RCP<const Epetra_Map>& range_product_map,
57 
59 
63 
65  virtual ~ProductEpetraOperator();
66 
68 
72 
75 
78 
80  virtual int SetUseTranspose(bool UseTranspose);
81 
86  virtual int Apply(const Epetra_MultiVector& Input,
87  Epetra_MultiVector& Result) const;
88 
93  virtual int ApplyInverse(const Epetra_MultiVector& X,
94  Epetra_MultiVector& Y) const;
95 
97  virtual double NormInf() const;
98 
100  virtual const char* Label () const;
101 
103  virtual bool UseTranspose() const;
104 
109  virtual bool HasNormInf() const;
110 
115  virtual const Epetra_Comm & Comm() const;
116 
121  virtual const Epetra_Map& OperatorDomainMap () const;
122 
127  virtual const Epetra_Map& OperatorRangeMap () const;
128 
130 
131  protected:
132 
135  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
137 
141 
142  protected:
143 
146 
149 
152 
155 
158 
159  }; // class ProductEpetraOperator
160 
161 } // end namespace Stokhos
162 
163 #endif // STOKHOS_PRODUCT_EPETRA_OPERATOR_HPP
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this matrix operator.
virtual const char * Label() const
Returns a character string describing the operator.
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of the inverse of the operator applied to a Epetra_MultiVector Input in Result as ...
ProductEpetraOperator(const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_Map > &domain_base_map, const Teuchos::RCP< const Epetra_Map > &range_base_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm)
Create a container with container map block_map where each coefficient is generated from the supplied...
Teuchos::RCP< const EpetraExt::MultiComm > product_comm
Product multi-level communicator.
A container class for products of Epetra_Vector&#39;s.
Teuchos::RCP< const Epetra_Map > product_range_map
Product range map.
Teuchos::RCP< const EpetraExt::MultiComm > productComm() const
Get product comm.
virtual int Apply(const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described ...
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Teuchos::RCP< const Epetra_Map > range_base_map
Range map of each coefficient.
virtual int SetUseTranspose(bool UseTranspose)
Set to true if the transpose of the operator is requested.
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this matrix operator. ...
bool useTranspose
Whether to use transpose in Apply()
A product (in the mathematical sense) container class whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
Teuchos::RCP< const Epetra_Map > domain_base_map
Domain map of each coefficient.
void setup(const Teuchos::RCP< const Epetra_Map > &domain_base_map, const Teuchos::RCP< const Epetra_Map > &range_base_map)
Second stage of setup.
virtual double NormInf() const
Returns an approximate infinity norm of the operator matrix.
ProductEpetraOperator & operator=(const ProductEpetraOperator &v)
Assignment.
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
virtual const Epetra_Comm & Comm() const
Returns a reference to the Epetra_Comm communicator associated with this operator.