#include <LOCA_Epetra_xyztPrec.H>
Public Member Functions | |
xyztPrec (EpetraExt::BlockCrsMatrix &jacobian, Epetra_CrsMatrix &splitJac, EpetraExt::BlockVector &solution, EpetraExt::BlockVector &solutionOverlap, Epetra_Import &overlapImporter, Teuchos::ParameterList &precPrintParams, Teuchos::ParameterList &precLSParams, const Teuchos::RCP< EpetraExt::MultiComm > globalComm_) | |
Constructor. | |
virtual | ~xyztPrec () |
Destructor. | |
virtual int | SetUseTranspose (bool UseTranspose) |
Set transpose. | |
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Apply XYZT preconditioner operator. | |
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
Apply XYZT preconditioner operator inverse. | |
virtual double | NormInf () const |
Computing infinity norm. | |
virtual const char * | Label () const |
Label. | |
virtual bool | UseTranspose () const |
Transpose. | |
virtual bool | HasNormInf () const |
Have norm-inf. | |
virtual const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. | |
virtual const Epetra_Map & | OperatorDomainMap () const |
Returns the Epetra_Map object associated with the domain of this operator. | |
virtual const Epetra_Map & | OperatorRangeMap () const |
Returns the Epetra_Map object associated with the range of this operator. | |
virtual bool | computeF (const Epetra_Vector &, Epetra_Vector &, NOX::Epetra::Interface::Required::FillType) |
Compute residual ![]() | |
virtual bool | computeJacobian (const Epetra_Vector &, Epetra_Operator &) |
Compute Jacobian ![]() | |
virtual bool | computePreconditioner (const Epetra_Vector &x, Epetra_Operator &Prec, Teuchos::ParameterList *p=0) |
Compute preconditioner ![]() | |
virtual void | throwError (const string &functionName, const string &errorMsg) const |
Exception handler for the XYZT preconditioner class. | |
Private Attributes | |
EpetraExt::BlockCrsMatrix & | jacobian |
Reference to global XYZT Jacobian matrix. | |
Epetra_CrsMatrix & | splitJac |
Reference to split (spatial) Jacobian matrix. | |
EpetraExt::BlockVector & | solution |
Reference to global XYZT solution. | |
EpetraExt::BlockVector & | solutionOverlap |
Reference to global XYZT solution overlap stored on other processors. | |
Epetra_Import & | overlapImporter |
Reference to Epetra importer for overlapping XYZT solution imports. | |
Teuchos::ParameterList & | printParams |
Reference to parameter list for controlling output of solve. | |
Teuchos::ParameterList & | lsParams |
Reference to parameter list for controlling linear system solve. | |
const Teuchos::RCP < EpetraExt::MultiComm > | globalComm |
Reference to global communicator for global XYZT operator. | |
std::vector < NOX::Epetra::LinearSystemAztecOO * > | linSys |
Pointer to global XYZT linear system to be solved. | |
std::vector< Teuchos::RCP < Epetra_CrsMatrix > > | jacobianBlock |
Pointer to jacobian blocks of global XYZT system. | |
std::vector< Teuchos::RCP < Epetra_CrsMatrix > > | massBlock |
Pointer to mass matrix blocks of global XYZT system. | |
std::vector< Teuchos::RCP < Epetra_Vector > > | diagBlockSubdiag |
Pointer to subdiagonal blocks used in the BDSDT perconditioner. | |
EpetraExt::BlockVector * | residual |
Pointer to global XYZT residual vector. | |
Epetra_Vector * | splitVec |
Pointer to split (spatial) input vector of current iteration. | |
Epetra_Vector * | splitRes |
Pointer to split (spatial) residual vector of current iteration. | |
Epetra_Vector * | splitVecOld |
Pointer to split (spatial) input vector from previous iteration. | |
NOX::Epetra::Vector * | splitRes_NEV |
View of split residual vector. | |
NOX::Epetra::Vector * | splitVec_NEV |
View of split input vector. | |
bool | isPeriodic |
Flag indicating whether XYZT system is periodic. | |
string | label |
Label for this operator. |
Implements right preconditioning operators for use in global XYZT Jacobian matrix solves.
Definition at line 106 of file LOCA_Epetra_xyztPrec.H.
LOCA::Epetra::xyztPrec::xyztPrec | ( | EpetraExt::BlockCrsMatrix & | jacobian, | |
Epetra_CrsMatrix & | splitJac, | |||
EpetraExt::BlockVector & | solution, | |||
EpetraExt::BlockVector & | solutionOverlap, | |||
Epetra_Import & | overlapImporter, | |||
Teuchos::ParameterList & | precPrintParams, | |||
Teuchos::ParameterList & | precLSParams, | |||
const Teuchos::RCP< EpetraExt::MultiComm > | globalComm_ | |||
) |
Constructor.
Builds a preconditioner operator for a full XYZT Jacobian matrix jacobian. Right preconditioner applies are controlled using the parameters in precLSParams.
Definition at line 49 of file LOCA_Epetra_xyztPrec.C.
References NOX::Epetra::Vector::CreateView, diagBlockSubdiag, globalComm, jacobian, jacobianBlock, label, linSys, lsParams, massBlock, printParams, residual, solution, splitJac, splitRes, splitRes_NEV, splitVec, splitVec_NEV, splitVecOld, and throwError().
LOCA::Epetra::xyztPrec::~xyztPrec | ( | ) | [virtual] |
Destructor.
Definition at line 165 of file LOCA_Epetra_xyztPrec.C.
References globalComm, linSys, lsParams, residual, splitRes, splitRes_NEV, splitVec, splitVec_NEV, and splitVecOld.
int LOCA::Epetra::xyztPrec::SetUseTranspose | ( | bool | UseTranspose | ) | [virtual] |
int LOCA::Epetra::xyztPrec::Apply | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [virtual] |
int LOCA::Epetra::xyztPrec::ApplyInverse | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [virtual] |
Apply XYZT preconditioner operator inverse.
Definition at line 209 of file LOCA_Epetra_xyztPrec.C.
References NOX::Epetra::Vector::CreateView, diagBlockSubdiag, globalComm, isPeriodic, jacobian, jacobianBlock, linSys, lsParams, massBlock, overlapImporter, residual, solution, solutionOverlap, splitRes, splitRes_NEV, splitVec, splitVec_NEV, and splitVecOld.
double LOCA::Epetra::xyztPrec::NormInf | ( | ) | const [virtual] |
const char * LOCA::Epetra::xyztPrec::Label | ( | ) | const [virtual] |
bool LOCA::Epetra::xyztPrec::UseTranspose | ( | ) | const [virtual] |
bool LOCA::Epetra::xyztPrec::HasNormInf | ( | ) | const [virtual] |
const Epetra_Comm & LOCA::Epetra::xyztPrec::Comm | ( | ) | const [virtual] |
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Definition at line 506 of file LOCA_Epetra_xyztPrec.C.
References jacobian.
const Epetra_Map & LOCA::Epetra::xyztPrec::OperatorDomainMap | ( | ) | const [virtual] |
Returns the Epetra_Map object associated with the domain of this operator.
Definition at line 512 of file LOCA_Epetra_xyztPrec.C.
References jacobian.
const Epetra_Map & LOCA::Epetra::xyztPrec::OperatorRangeMap | ( | ) | const [virtual] |
Returns the Epetra_Map object associated with the range of this operator.
Definition at line 518 of file LOCA_Epetra_xyztPrec.C.
References jacobian.
bool LOCA::Epetra::xyztPrec::computeF | ( | const Epetra_Vector & | , | |
Epetra_Vector & | , | |||
NOX::Epetra::Interface::Required::FillType | ||||
) | [virtual] |
Compute residual .
Implements NOX::Epetra::Interface::Required.
Definition at line 524 of file LOCA_Epetra_xyztPrec.C.
bool LOCA::Epetra::xyztPrec::computeJacobian | ( | const Epetra_Vector & | , | |
Epetra_Operator & | ||||
) | [virtual] |
Compute Jacobian .
Implements NOX::Epetra::Interface::Jacobian.
Definition at line 532 of file LOCA_Epetra_xyztPrec.C.
bool LOCA::Epetra::xyztPrec::computePreconditioner | ( | const Epetra_Vector & | x, | |
Epetra_Operator & | Prec, | |||
Teuchos::ParameterList * | p = 0 | |||
) | [virtual] |
Compute preconditioner .
Implements NOX::Epetra::Interface::Preconditioner.
Definition at line 539 of file LOCA_Epetra_xyztPrec.C.
References diagBlockSubdiag, globalComm, isPeriodic, jacobian, jacobianBlock, linSys, lsParams, massBlock, splitRes, and splitVec.
void LOCA::Epetra::xyztPrec::throwError | ( | const string & | functionName, | |
const string & | errorMsg | |||
) | const [virtual] |
Exception handler for the XYZT preconditioner class.
Definition at line 598 of file LOCA_Epetra_xyztPrec.C.
Referenced by xyztPrec().
EpetraExt::BlockCrsMatrix& LOCA::Epetra::xyztPrec::jacobian [private] |
Reference to global XYZT Jacobian matrix.
Definition at line 194 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), Comm(), computePreconditioner(), OperatorDomainMap(), OperatorRangeMap(), and xyztPrec().
Epetra_CrsMatrix& LOCA::Epetra::xyztPrec::splitJac [private] |
Reference to split (spatial) Jacobian matrix.
Definition at line 197 of file LOCA_Epetra_xyztPrec.H.
Referenced by xyztPrec().
EpetraExt::BlockVector& LOCA::Epetra::xyztPrec::solution [private] |
Reference to global XYZT solution.
Definition at line 200 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), and xyztPrec().
EpetraExt::BlockVector& LOCA::Epetra::xyztPrec::solutionOverlap [private] |
Reference to global XYZT solution overlap stored on other processors.
Definition at line 203 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse().
Epetra_Import& LOCA::Epetra::xyztPrec::overlapImporter [private] |
Reference to Epetra importer for overlapping XYZT solution imports.
Definition at line 206 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse().
Teuchos::ParameterList& LOCA::Epetra::xyztPrec::printParams [private] |
Reference to parameter list for controlling output of solve.
Definition at line 209 of file LOCA_Epetra_xyztPrec.H.
Referenced by xyztPrec().
Teuchos::ParameterList& LOCA::Epetra::xyztPrec::lsParams [private] |
Reference to parameter list for controlling linear system solve.
Definition at line 212 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), xyztPrec(), and ~xyztPrec().
const Teuchos::RCP<EpetraExt::MultiComm> LOCA::Epetra::xyztPrec::globalComm [private] |
Reference to global communicator for global XYZT operator.
Definition at line 215 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), xyztPrec(), and ~xyztPrec().
std::vector<NOX::Epetra::LinearSystemAztecOO *> LOCA::Epetra::xyztPrec::linSys [private] |
Pointer to global XYZT linear system to be solved.
Definition at line 218 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), xyztPrec(), and ~xyztPrec().
std::vector<Teuchos::RCP<Epetra_CrsMatrix> > LOCA::Epetra::xyztPrec::jacobianBlock [private] |
Pointer to jacobian blocks of global XYZT system.
Definition at line 221 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), and xyztPrec().
std::vector<Teuchos::RCP<Epetra_CrsMatrix> > LOCA::Epetra::xyztPrec::massBlock [private] |
Pointer to mass matrix blocks of global XYZT system.
Definition at line 224 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), and xyztPrec().
std::vector<Teuchos::RCP<Epetra_Vector> > LOCA::Epetra::xyztPrec::diagBlockSubdiag [private] |
Pointer to subdiagonal blocks used in the BDSDT perconditioner.
Definition at line 227 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), and xyztPrec().
EpetraExt::BlockVector* LOCA::Epetra::xyztPrec::residual [private] |
Pointer to global XYZT residual vector.
Definition at line 230 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), xyztPrec(), and ~xyztPrec().
Epetra_Vector* LOCA::Epetra::xyztPrec::splitVec [private] |
Pointer to split (spatial) input vector of current iteration.
Definition at line 233 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), xyztPrec(), and ~xyztPrec().
Epetra_Vector* LOCA::Epetra::xyztPrec::splitRes [private] |
Pointer to split (spatial) residual vector of current iteration.
Definition at line 236 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), computePreconditioner(), xyztPrec(), and ~xyztPrec().
Epetra_Vector* LOCA::Epetra::xyztPrec::splitVecOld [private] |
Pointer to split (spatial) input vector from previous iteration.
Definition at line 239 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), xyztPrec(), and ~xyztPrec().
View of split residual vector.
Definition at line 242 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), xyztPrec(), and ~xyztPrec().
View of split input vector.
Definition at line 245 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), xyztPrec(), and ~xyztPrec().
bool LOCA::Epetra::xyztPrec::isPeriodic [private] |
Flag indicating whether XYZT system is periodic.
Definition at line 248 of file LOCA_Epetra_xyztPrec.H.
Referenced by ApplyInverse(), and computePreconditioner().
string LOCA::Epetra::xyztPrec::label [private] |
Label for this operator.
Definition at line 251 of file LOCA_Epetra_xyztPrec.H.
Referenced by Label(), and xyztPrec().