Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_InterlacedOperator.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_INTERLACED_OPERATOR_HPP
11 #define STOKHOS_INTERLACED_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 
31  public Stokhos::SGOperator,
32  public EpetraExt::BlockCrsMatrix {
33 
34  public:
35 
41  const Teuchos::RCP<const Epetra_CrsGraph>& base_graph,
43 
45  virtual ~InterlacedOperator();
46 
49 
51  virtual void setupOperator(
53 
57 
60  getSGPolynomial() const;
61 
63 
65  void SumIntoGlobalBlock_Deterministic(double alpha,const Epetra_RowMatrix & determBlock,int Row,int Col);
66 
67  private:
68 
71 
74 
75  protected:
76 
79 
82 
85 
88 
91 
94 
96  bool scale_op;
97 
100 
103 
105 
106  }; // class InterlacedOperator
107 
108 } // namespace Stokhos
109 
110 #endif // STOKHOS_INTERLACED_OPERATOR_HPP
bool only_use_linear
Flag indicating whether to only use linear terms.
InterlacedOperator & operator=(const InterlacedOperator &)
Private to prohibit copying.
InterlacedOperator(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< Teuchos::ParameterList > &params)
Constructor.
virtual Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > getSGPolynomial()
Get SG polynomial.
virtual void setupOperator(const Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > &poly)
Setup operator.
bool scale_op
Flag indicating whether operator be scaled with &lt;^2&gt;
Teuchos::RCP< const Cijk_type > Cijk
Stores triple product tensor.
An abstract class to represent a generic stochastic Galerkin operator as an Epetra_Operator.
Teuchos::RCP< const EpetraExt::MultiComm > sg_comm
Stores SG parallel communicator.
void SumIntoGlobalBlock_Deterministic(double alpha, const Epetra_RowMatrix &determBlock, int Row, int Col)
Sum into global matrix.
Teuchos::RCP< Stokhos::EpetraOperatorOrthogPoly > block_ops
Stores operators.
bool include_mean
Flag indicating whether to include mean term.
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...
Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > epetraCijk
Stores Epetra Cijk tensor.
Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > sg_basis
Stochastic Galerking basis.
Stokhos::Sparse3Tensor< int, double > Cijk_type
Short-hand for Cijk.