#include <Projectors.h>
Collaboration diagram for Projectors:
Public Member Functions | |
Projectors (const Epetra_Comm &_Comm, const Epetra_Operator *AA, const Epetra_Operator *BB, const Epetra_Operator *PP, int eqType, int k, int kmax, int *Hpiv, int *Gpiv, double theta, double *Hlu, double *Glu, Epetra_MultiVector *Q, Epetra_MultiVector *Qb, Epetra_MultiVector *Y, double *w1, double *w2) | |
~Projectors () | |
void | MakeRHS (Epetra_MultiVector &R) |
void | resetPro_k (int k) |
void | resetPro_theta (double t) |
void | resetPro_Q (Epetra_MultiVector *dd) |
void | resetPro_Qb (Epetra_MultiVector *dd) |
void | resetPro_Y (Epetra_MultiVector *dd) |
const double | getTimeApply () const |
const double | getTimeApplyInverse () const |
const char * | Label () const |
bool | UseTranspose () const |
int | SetUseTranspose (bool UseTranspose) |
bool | HasNormInf () const |
double | NormInf () const |
int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
const Epetra_Comm & | Comm () const |
const Epetra_Map & | OperatorDomainMap () const |
const Epetra_Map & | OperatorRangeMap () const |
Protected Member Functions | |
void | LinOp_UNSYM1 (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | LinOp_UNSYM2 (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | LinOp_SYM (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Precon_UNSYM1 (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Precon_UNSYM2 (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Precon_SYM (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Right_UNSYM1 (Epetra_Vector &r) |
void | Right_UNSYM2 (Epetra_Vector &r) |
void | Right_SYM (Epetra_Vector &r) |
void | A_theta_B (const Epetra_MultiVector &X, Epetra_MultiVector &Y, double *wTmp) const |
void | A_theta_I (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Project1 (Epetra_MultiVector *AA, Epetra_MultiVector *BB, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
void | Project2 (Epetra_MultiVector *AA, int rowB, int *piv, double *Blu, Epetra_MultiVector *CC, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Private Member Functions | |
Projectors (const Projectors &ref) | |
Projectors & | operator= (const Projectors &ref) |
Private Attributes | |
const Epetra_BLAS | callBLAS |
const Epetra_LAPACK | callLAPACK |
OrthoPack | orthoTool |
const Epetra_Comm & | MyComm |
const Epetra_Time | MyWatch |
const Epetra_Operator * | A |
const Epetra_Operator * | B |
const Epetra_Operator * | APrec |
int | Pro_k |
int | Pro_kmax |
int | Pro_EquationType |
int * | Pro_Hpiv |
int * | Pro_Gpiv |
double | Pro_theta |
double * | Pro_Hlu |
double * | Pro_Glu |
Epetra_MultiVector * | Pro_Q |
Epetra_MultiVector * | Pro_Qb |
Epetra_MultiVector * | Pro_Y |
double * | work1 |
double * | work2 |
double | timeApply |
double | timeApplyInverse |
Static Private Attributes | |
static const int | OP_UNSYM1 = 1 |
static const int | OP_UNSYM2 = 2 |
static const int | OP_SYM = 3 |
Definition at line 65 of file Projectors.h.
Projectors::Projectors | ( | const Projectors & | ref | ) | [private] |
Projectors::Projectors | ( | const Epetra_Comm & | _Comm, | |
const Epetra_Operator * | AA, | |||
const Epetra_Operator * | BB, | |||
const Epetra_Operator * | PP, | |||
int | eqType, | |||
int | k, | |||
int | kmax, | |||
int * | Hpiv, | |||
int * | Gpiv, | |||
double | theta, | |||
double * | Hlu, | |||
double * | Glu, | |||
Epetra_MultiVector * | Q, | |||
Epetra_MultiVector * | Qb, | |||
Epetra_MultiVector * | Y, | |||
double * | w1, | |||
double * | w2 | |||
) |
Definition at line 58 of file Projectors.cpp.
Projectors::~Projectors | ( | ) | [inline] |
Definition at line 143 of file Projectors.h.
void Projectors::A_theta_B | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y, | |||
double * | wTmp | |||
) | const [protected] |
Definition at line 462 of file Projectors.cpp.
References A, B, callBLAS, and Pro_theta.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), and LinOp_UNSYM2().
void Projectors::A_theta_I | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 481 of file Projectors.cpp.
References A, callBLAS, and Pro_theta.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), and LinOp_UNSYM2().
int Projectors::Apply | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const |
Definition at line 121 of file Projectors.cpp.
References A, LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), MyWatch, OP_SYM, OP_UNSYM1, OP_UNSYM2, Pro_EquationType, and timeApply.
Here is the call graph for this function:
int Projectors::ApplyInverse | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const |
Definition at line 148 of file Projectors.cpp.
References APrec, MyWatch, OP_SYM, OP_UNSYM1, OP_UNSYM2, Precon_SYM(), Precon_UNSYM1(), Precon_UNSYM2(), Pro_EquationType, and timeApplyInverse.
Here is the call graph for this function:
const Epetra_Comm& Projectors::Comm | ( | ) | const [inline] |
const double Projectors::getTimeApply | ( | ) | const [inline] |
Definition at line 153 of file Projectors.h.
References timeApply.
Referenced by JDBSYM::timeInfo().
const double Projectors::getTimeApplyInverse | ( | ) | const [inline] |
Definition at line 154 of file Projectors.h.
References timeApplyInverse.
Referenced by JDBSYM::timeInfo().
bool Projectors::HasNormInf | ( | ) | const [inline] |
Definition at line 163 of file Projectors.h.
const char* Projectors::Label | ( | ) | const [inline] |
Definition at line 158 of file Projectors.h.
void Projectors::LinOp_SYM | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 315 of file Projectors.cpp.
References A_theta_B(), A_theta_I(), B, Pro_Q, Pro_Qb, Project1(), work1, and work2.
Referenced by Apply().
Here is the call graph for this function:
void Projectors::LinOp_UNSYM1 | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 211 of file Projectors.cpp.
References A_theta_B(), A_theta_I(), APrec, B, Pro_Hlu, Pro_Hpiv, Pro_k, Pro_Q, Pro_Qb, Pro_Y, Project1(), Project2(), work1, and work2.
Referenced by Apply().
Here is the call graph for this function:
void Projectors::LinOp_UNSYM2 | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 260 of file Projectors.cpp.
References A_theta_B(), A_theta_I(), APrec, B, Pro_Glu, Pro_Gpiv, Pro_Hlu, Pro_Hpiv, Pro_k, Pro_Q, Pro_Qb, Pro_Y, Project1(), Project2(), work1, and work2.
Referenced by Apply().
Here is the call graph for this function:
void Projectors::MakeRHS | ( | Epetra_MultiVector & | R | ) |
Definition at line 177 of file Projectors.cpp.
References OP_SYM, OP_UNSYM1, OP_UNSYM2, Pro_EquationType, Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
Referenced by JDBSYM::jdbsym().
Here is the call graph for this function:
double Projectors::NormInf | ( | ) | const [inline] |
Definition at line 164 of file Projectors.h.
Projectors& Projectors::operator= | ( | const Projectors & | ref | ) | [private] |
const Epetra_Map & Projectors::OperatorDomainMap | ( | ) | const |
const Epetra_Map & Projectors::OperatorRangeMap | ( | ) | const |
void Projectors::Precon_SYM | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 362 of file Projectors.cpp.
References APrec, B, Pro_Glu, Pro_Gpiv, Pro_Hlu, Pro_Hpiv, Pro_k, Pro_Q, Pro_Qb, Pro_Y, and Project2().
Referenced by ApplyInverse().
Here is the call graph for this function:
void Projectors::Precon_UNSYM1 | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
void Projectors::Precon_UNSYM2 | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [protected] |
void Projectors::Project1 | ( | Epetra_MultiVector * | AA, | |
Epetra_MultiVector * | BB, | |||
const Epetra_MultiVector & | X, | |||
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 506 of file Projectors.cpp.
References callBLAS, and MyComm.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
void Projectors::Project2 | ( | Epetra_MultiVector * | AA, | |
int | rowB, | |||
int * | piv, | |||
double * | Blu, | |||
Epetra_MultiVector * | CC, | |||
const Epetra_MultiVector & | X, | |||
Epetra_MultiVector & | Y | |||
) | const [protected] |
Definition at line 542 of file Projectors.cpp.
References callBLAS, callLAPACK, MyComm, and Pro_kmax.
Referenced by LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), Right_UNSYM1(), and Right_UNSYM2().
void Projectors::resetPro_k | ( | int | k | ) | [inline] |
void Projectors::resetPro_Q | ( | Epetra_MultiVector * | dd | ) | [inline] |
void Projectors::resetPro_Qb | ( | Epetra_MultiVector * | dd | ) | [inline] |
void Projectors::resetPro_theta | ( | double | t | ) | [inline] |
void Projectors::resetPro_Y | ( | Epetra_MultiVector * | dd | ) | [inline] |
void Projectors::Right_SYM | ( | Epetra_Vector & | r | ) | [protected] |
Definition at line 442 of file Projectors.cpp.
References B, OrthoPack::ModifiedGS(), orthoTool, Pro_Q, Pro_Qb, and Project1().
Referenced by MakeRHS().
Here is the call graph for this function:
void Projectors::Right_UNSYM1 | ( | Epetra_Vector & | r | ) | [protected] |
Definition at line 389 of file Projectors.cpp.
References APrec, B, OrthoPack::ModifiedGS(), orthoTool, Pro_Hlu, Pro_Hpiv, Pro_k, Pro_Q, Pro_Qb, Pro_Y, Project1(), Project2(), and work1.
Referenced by MakeRHS().
Here is the call graph for this function:
void Projectors::Right_UNSYM2 | ( | Epetra_Vector & | r | ) | [protected] |
Definition at line 414 of file Projectors.cpp.
References APrec, B, OrthoPack::ModifiedGS(), orthoTool, Pro_Glu, Pro_Gpiv, Pro_Hlu, Pro_Hpiv, Pro_k, Pro_Q, Pro_Qb, Pro_Y, Project1(), Project2(), and work1.
Referenced by MakeRHS().
Here is the call graph for this function:
int Projectors::SetUseTranspose | ( | bool | UseTranspose | ) | [inline] |
Definition at line 161 of file Projectors.h.
bool Projectors::UseTranspose | ( | ) | const [inline] |
Definition at line 160 of file Projectors.h.
const Epetra_Operator* Projectors::A [private] |
Definition at line 76 of file Projectors.h.
Referenced by A_theta_B(), A_theta_I(), Apply(), OperatorDomainMap(), and OperatorRangeMap().
const Epetra_Operator* Projectors::APrec [private] |
Definition at line 78 of file Projectors.h.
Referenced by ApplyInverse(), LinOp_UNSYM1(), LinOp_UNSYM2(), OperatorDomainMap(), OperatorRangeMap(), Precon_SYM(), Right_UNSYM1(), and Right_UNSYM2().
const Epetra_Operator* Projectors::B [private] |
Definition at line 77 of file Projectors.h.
Referenced by A_theta_B(), LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), OperatorDomainMap(), OperatorRangeMap(), Precon_SYM(), Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
const Epetra_BLAS Projectors::callBLAS [private] |
Definition at line 69 of file Projectors.h.
Referenced by A_theta_B(), A_theta_I(), Project1(), and Project2().
const Epetra_LAPACK Projectors::callLAPACK [private] |
const Epetra_Comm& Projectors::MyComm [private] |
const Epetra_Time Projectors::MyWatch [private] |
const int Projectors::OP_SYM = 3 [static, private] |
const int Projectors::OP_UNSYM1 = 1 [static, private] |
const int Projectors::OP_UNSYM2 = 2 [static, private] |
OrthoPack Projectors::orthoTool [private] |
Definition at line 71 of file Projectors.h.
Referenced by Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
int Projectors::Pro_EquationType [private] |
double* Projectors::Pro_Glu [private] |
Definition at line 91 of file Projectors.h.
Referenced by LinOp_UNSYM2(), Precon_SYM(), and Right_UNSYM2().
int* Projectors::Pro_Gpiv [private] |
Definition at line 86 of file Projectors.h.
Referenced by LinOp_UNSYM2(), Precon_SYM(), and Right_UNSYM2().
double* Projectors::Pro_Hlu [private] |
Definition at line 90 of file Projectors.h.
Referenced by LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), Right_UNSYM1(), and Right_UNSYM2().
int* Projectors::Pro_Hpiv [private] |
Definition at line 85 of file Projectors.h.
Referenced by LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), Right_UNSYM1(), and Right_UNSYM2().
int Projectors::Pro_k [private] |
Definition at line 80 of file Projectors.h.
Referenced by LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), resetPro_k(), Right_UNSYM1(), and Right_UNSYM2().
int Projectors::Pro_kmax [private] |
Epetra_MultiVector* Projectors::Pro_Q [private] |
Definition at line 93 of file Projectors.h.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), resetPro_Q(), Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
Epetra_MultiVector* Projectors::Pro_Qb [private] |
Definition at line 94 of file Projectors.h.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), resetPro_Qb(), Right_SYM(), Right_UNSYM1(), and Right_UNSYM2().
double Projectors::Pro_theta [private] |
Definition at line 88 of file Projectors.h.
Referenced by A_theta_B(), A_theta_I(), and resetPro_theta().
Epetra_MultiVector* Projectors::Pro_Y [private] |
Definition at line 95 of file Projectors.h.
Referenced by LinOp_UNSYM1(), LinOp_UNSYM2(), Precon_SYM(), resetPro_Y(), Right_UNSYM1(), and Right_UNSYM2().
double Projectors::timeApply [mutable, private] |
double Projectors::timeApplyInverse [mutable, private] |
Definition at line 101 of file Projectors.h.
Referenced by ApplyInverse(), and getTimeApplyInverse().
double* Projectors::work1 [private] |
Definition at line 97 of file Projectors.h.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), LinOp_UNSYM2(), Right_UNSYM1(), and Right_UNSYM2().
double* Projectors::work2 [private] |
Definition at line 98 of file Projectors.h.
Referenced by LinOp_SYM(), LinOp_UNSYM1(), and LinOp_UNSYM2().