Projectors Class Reference

#include <Projectors.h>

Collaboration diagram for Projectors:

Collaboration graph
[legend]
List of all members.

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)
Projectorsoperator= (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

Detailed Description

Definition at line 65 of file Projectors.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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]

Definition at line 169 of file Projectors.h.

References MyComm.

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

Definition at line 92 of file Projectors.cpp.

References A, APrec, and B.

const Epetra_Map & Projectors::OperatorRangeMap (  )  const

Definition at line 106 of file Projectors.cpp.

References A, APrec, and B.

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]

Definition at line 346 of file Projectors.cpp.

Referenced by ApplyInverse().

void Projectors::Precon_UNSYM2 ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [protected]

Definition at line 354 of file Projectors.cpp.

Referenced by ApplyInverse().

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]

Definition at line 147 of file Projectors.h.

References Pro_k.

Referenced by JDBSYM::jdbsym().

void Projectors::resetPro_Q ( Epetra_MultiVector *  dd  )  [inline]

Definition at line 149 of file Projectors.h.

References Pro_Q.

Referenced by JDBSYM::jdbsym().

void Projectors::resetPro_Qb ( Epetra_MultiVector *  dd  )  [inline]

Definition at line 150 of file Projectors.h.

References Pro_Qb.

Referenced by JDBSYM::jdbsym().

void Projectors::resetPro_theta ( double  t  )  [inline]

Definition at line 148 of file Projectors.h.

References Pro_theta.

Referenced by JDBSYM::jdbsym().

void Projectors::resetPro_Y ( Epetra_MultiVector *  dd  )  [inline]

Definition at line 151 of file Projectors.h.

References Pro_Y.

Referenced by JDBSYM::jdbsym().

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.


Member Data Documentation

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]

Definition at line 70 of file Projectors.h.

Referenced by Project2().

const Epetra_Comm& Projectors::MyComm [private]

Definition at line 73 of file Projectors.h.

Referenced by Comm(), Project1(), and Project2().

const Epetra_Time Projectors::MyWatch [private]

Definition at line 74 of file Projectors.h.

Referenced by Apply(), and ApplyInverse().

const int Projectors::OP_SYM = 3 [static, private]

Definition at line 105 of file Projectors.h.

Referenced by Apply(), ApplyInverse(), and MakeRHS().

const int Projectors::OP_UNSYM1 = 1 [static, private]

Definition at line 103 of file Projectors.h.

Referenced by Apply(), ApplyInverse(), and MakeRHS().

const int Projectors::OP_UNSYM2 = 2 [static, private]

Definition at line 104 of file Projectors.h.

Referenced by Apply(), ApplyInverse(), and MakeRHS().

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]

Definition at line 83 of file Projectors.h.

Referenced by Apply(), ApplyInverse(), and MakeRHS().

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]

Definition at line 81 of file Projectors.h.

Referenced by Project2().

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]

Definition at line 100 of file Projectors.h.

Referenced by Apply(), and getTimeApply().

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().


The documentation for this class was generated from the following files:
Generated on Fri Oct 26 13:35:17 2007 for FEMAXX (Finite Element Maxwell Eigensolver) by  doxygen 1.4.7