Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_FullyAssembledOperator.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_FULLY_ASSEMBLED_OPERATOR_HPP
11 #define STOKHOS_FULLY_ASSEMBLED_OPERATOR_HPP
12 
13 #include "Stokhos_SGOperator.hpp"
14 #include "EpetraExt_MultiComm.h"
18 #include "EpetraExt_BlockCrsMatrix.h"
19 #include <vector>
20 
21 namespace Stokhos {
22 
28  public Stokhos::SGOperator,
29  public EpetraExt::BlockCrsMatrix {
30 
31  public:
32 
38  const Teuchos::RCP<const Epetra_CrsGraph>& base_graph,
42 
44  virtual ~FullyAssembledOperator();
45 
48 
50  virtual void setupOperator(
52 
56 
59  getSGPolynomial() const;
60 
62 
65 
69  virtual int Apply(const Epetra_MultiVector& Input,
70  Epetra_MultiVector& Result) const;
71 
73 
74  private:
75 
78 
81 
82  protected:
83 
86 
89 
92 
95 
98 
101 
104 
107 
109  bool scale_op;
110 
113 
116 
117  }; // class FullyAssembledOperator
118 
119 } // namespace Stokhos
120 
121 #endif // STOKHOS_FULLY_ASSEMBLED_OPERATOR_HPP
Teuchos::RCP< const Epetra_Map > domain_sg_map
Stores domain SG map.
Teuchos::RCP< const Epetra_Map > range_sg_map
Stores range SG map.
Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > epetraCijk
Stores Epetra Cijk tensor.
virtual void setupOperator(const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
Setup operator.
virtual Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > getSGPolynomial()
Get SG polynomial.
FullyAssembledOperator & operator=(const FullyAssembledOperator &)
Private to prohibit copying.
Teuchos::RCP< const EpetraExt::MultiComm > sg_comm
Stores SG parallel communicator.
bool only_use_linear
Flag indicating whether to only use linear terms.
An abstract class to represent a generic stochastic Galerkin operator as an Epetra_Operator.
virtual int Apply(const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const
Wrap Apply() to add a timer.
Teuchos::RCP< const Cijk_type > Cijk
Stores triple product tensor.
bool scale_op
Flag indicating whether operator be scaled with &lt;^2&gt;
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > block_ops
Stores operators.
bool include_mean
Flag indicating whether to include mean term.
Stokhos::Sparse3Tensor< int, double > Cijk_type
Short-hand for Cijk.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > sg_basis
Stochastic Galerking basis.
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...
FullyAssembledOperator(const Teuchos::RCP< const EpetraExt::MultiComm > &sg_comm, const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &sg_basis, const Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > &epetraCijk, const Teuchos::RCP< const Epetra_CrsGraph > &base_graph, const Teuchos::RCP< const Epetra_Map > &domain_sg_map, const Teuchos::RCP< const Epetra_Map > &range_sg_map, const Teuchos::RCP< Teuchos::ParameterList > &params)
Constructor.