Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
NS
Teko_ALOperator.hpp
1
/*
2
* Author: Zhen Wang
3
* Email: wangz@ornl.gov
4
* zhen.wang@alum.emory.edu
5
*/
6
7
#ifndef __Teko_ALOperator_hpp__
8
#define __Teko_ALOperator_hpp__
9
10
#include "Teko_BlockedEpetraOperator.hpp"
11
#include "
Teko_Utilities.hpp
"
12
13
namespace
Teko {
14
15
namespace
NS {
16
80
81
class
ALOperator
:
public
Teko::Epetra::BlockedEpetraOperator
{
82
public
:
98
ALOperator
(
const
std::vector<std::vector<int> >& vars,
99
const
Teuchos::RCP<Epetra_Operator>& content, LinearOp pressureMassMatrix,
100
double
gamma = 0.05,
const
std::string& label =
"<ANYM>"
);
101
115
ALOperator
(
const
std::vector<std::vector<int> >& vars,
116
const
Teuchos::RCP<Epetra_Operator>& content,
double
gamma = 0.05,
117
const
std::string& label =
"<ANYM>"
);
118
119
// Destructor
120
virtual
~ALOperator
() {}
121
128
void
setPressureMassMatrix
(LinearOp pressureMassMatrix);
129
133
const
LinearOp&
getPressureMassMatrix
()
const
{
return
pressureMassMatrix_
; }
134
140
void
setGamma
(
double
gamma);
141
146
const
double
&
getGamma
()
const
{
return
gamma_
; }
147
154
void
augmentRHS
(
const
Epetra_MultiVector& b, Epetra_MultiVector& bAugmented);
155
159
int
getNumberOfBlockRows
()
const
{
return
numBlockRows_
; }
160
165
virtual
void
RebuildOps
() {
BuildALOperator
(); }
166
174
const
Teuchos::RCP<const Epetra_Operator>
GetBlock
(
int
i,
int
j)
const
;
175
176
protected
:
180
Teuchos::RCP<Thyra::LinearOpBase<double> >
alOperator_
;
181
185
Teuchos::RCP<Thyra::LinearOpBase<double> >
alOperatorRhs_
;
186
190
LinearOp
pressureMassMatrix_
;
191
195
LinearOp
invPressureMassMatrix_
;
196
200
double
gamma_
;
201
205
int
dim_
;
206
210
int
numBlockRows_
;
211
215
void
checkDim
(
const
std::vector<std::vector<int> >& vars);
216
220
void
BuildALOperator
();
221
};
222
223
}
// end namespace NS
224
225
}
// end namespace Teko
226
227
#endif
/* __Teko_ALOperator_hpp__ */
Teko_Utilities.hpp
Teko::Epetra::BlockedEpetraOperator
Tear about a user specified Epetra_Operator (CrsMatrix) using a vector of vectors of GIDs for each bl...
Definition
Teko_BlockedEpetraOperator.hpp:32
Teko::NS::ALOperator::setPressureMassMatrix
void setPressureMassMatrix(LinearOp pressureMassMatrix)
Definition
Teko_ALOperator.cpp:63
Teko::NS::ALOperator::alOperatorRhs_
Teuchos::RCP< Thyra::LinearOpBase< double > > alOperatorRhs_
Definition
Teko_ALOperator.hpp:185
Teko::NS::ALOperator::getNumberOfBlockRows
int getNumberOfBlockRows() const
Definition
Teko_ALOperator.hpp:159
Teko::NS::ALOperator::getGamma
const double & getGamma() const
Definition
Teko_ALOperator.hpp:146
Teko::NS::ALOperator::pressureMassMatrix_
LinearOp pressureMassMatrix_
Definition
Teko_ALOperator.hpp:190
Teko::NS::ALOperator::invPressureMassMatrix_
LinearOp invPressureMassMatrix_
Definition
Teko_ALOperator.hpp:195
Teko::NS::ALOperator::BuildALOperator
void BuildALOperator()
Definition
Teko_ALOperator.cpp:86
Teko::NS::ALOperator::alOperator_
Teuchos::RCP< Thyra::LinearOpBase< double > > alOperator_
Definition
Teko_ALOperator.hpp:180
Teko::NS::ALOperator::RebuildOps
virtual void RebuildOps()
Definition
Teko_ALOperator.hpp:165
Teko::NS::ALOperator::GetBlock
const Teuchos::RCP< const Epetra_Operator > GetBlock(int i, int j) const
Definition
Teko_ALOperator.cpp:74
Teko::NS::ALOperator::dim_
int dim_
Definition
Teko_ALOperator.hpp:205
Teko::NS::ALOperator::numBlockRows_
int numBlockRows_
Definition
Teko_ALOperator.hpp:210
Teko::NS::ALOperator::setGamma
void setGamma(double gamma)
Definition
Teko_ALOperator.cpp:69
Teko::NS::ALOperator::getPressureMassMatrix
const LinearOp & getPressureMassMatrix() const
Definition
Teko_ALOperator.hpp:133
Teko::NS::ALOperator::checkDim
void checkDim(const std::vector< std::vector< int > > &vars)
Definition
Teko_ALOperator.cpp:81
Teko::NS::ALOperator::augmentRHS
void augmentRHS(const Epetra_MultiVector &b, Epetra_MultiVector &bAugmented)
Definition
Teko_ALOperator.cpp:189
Teko::NS::ALOperator::ALOperator
ALOperator(const std::vector< std::vector< int > > &vars, const Teuchos::RCP< Epetra_Operator > &content, LinearOp pressureMassMatrix, double gamma=0.05, const std::string &label="<ANYM>")
Definition
Teko_ALOperator.cpp:41
Teko::NS::ALOperator::gamma_
double gamma_
Definition
Teko_ALOperator.hpp:200
Generated by
1.17.0