LOCA::Epetra::Interface::MultiPoint Class Reference

Used by LOCA::Epetra::Group to provide a link to the external code for creating and solving space-time formulations of the user's problem. More...

#include <LOCA_Epetra_Interface_MultiPoint.H>

Inheritance diagram for LOCA::Epetra::Interface::MultiPoint:

Inheritance graph
[legend]
Collaboration diagram for LOCA::Epetra::Interface::MultiPoint:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 MultiPoint (const Teuchos::RCP< LOCA::Epetra::Interface::Required > &iReq, const Teuchos::RCP< NOX::Epetra::Interface::Jacobian > &iJac, const Epetra_MultiVector &splitMultiVec, const Teuchos::RCP< Epetra_RowMatrix > &splitJac, const Teuchos::RCP< EpetraExt::MultiComm > &globalComm)
 Constructor.
virtual ~MultiPoint ()
 Destructor.
virtual bool computeF (const Epetra_Vector &x, Epetra_Vector &F, const FillType fillFlag)
 NOX Interface function for computing the residual.
virtual bool computeJacobian (const Epetra_Vector &x, Epetra_Operator &Jac)
 NOX Interface function for computing the Jacobian matrix.
virtual void setParameters (const LOCA::ParameterVector &param)
 LOCA Interface function for setting the continuation parameter.
virtual void printSolution (const Epetra_Vector &x_, double conParam)
 LOCA Interface function for printing the solution.
virtual EpetraExt::BlockVector & getSolution ()
 Accessor for the global solution BlockVector.
virtual EpetraExt::BlockCrsMatrix & getJacobian ()
 Accessor for the global BlockCrsMatrix.
virtual void throwError (const string &functionName, const string &errorMsg) const
 LOCA Interface exception handler.

Private Attributes

Teuchos::RCP
< LOCA::Epetra::Interface::Required
iReq
 Pointer to interface for usual time-dependent problem.
Teuchos::RCP
< NOX::Epetra::Interface::Jacobian
iJac
Teuchos::RCP< Epetra_RowMatrix > splitJac
 Pointer to split (spatial) Jacobian matrix.
Teuchos::RCP
< EpetraExt::MultiComm > 
globalComm
 Pointer to the global (full XYZT) communicator.
Epetra_Vector splitVec
 Split (spatial) input vector.
Epetra_Vector splitRes
 Split (spatial) residual vector.
EpetraExt::BlockCrsMatrix * jacobian
 Pointer to global XYZT Jacobian matrix.
EpetraExt::BlockVector * solution
 Pointer to global XYZT solution vector.
EpetraExt::BlockVector * solutionOverlap
 Pointer to global XYZT solution overlap vector.
Epetra_Import * overlapImporter
 Pointer to global XYZT solution overlap vector importer.
int timeStepsOnTimeDomain
 Number of time steps computed on each time domain.
int numTimeDomains
 Total number of time step domains.
int timeDomain
 Time domain on current processor.
int conStep
 Continuation step number (used in printing).
std::vector< std::vector< int > > * rowStencil
 Stencil for each row of global XYZT Jacobian matrix.
std::vector< int > * rowIndex
 Set of indices into global XYZT Jacobian matrix.
Epetra_CrsMatrix * splitJacCrs
 Pointer to split (spatial) Jacobian matrix in CRS matrix form.


Detailed Description

Used by LOCA::Epetra::Group to provide a link to the external code for creating and solving space-time formulations of the user's problem.

Code that takes a standard NOX-LOCA problem interface for spatially-discretized problems, and creates a NOX-LOCA interface for space-time problems. This interface is called by multiple replicas of the spatially discretized problem for parallelism of the time domain. Each replica can also own one or more time steps. This interface assembles a single space-time system including the solution and residual BlockVectors and the Jacobian BlockCrsMatrix. This interface relies heavily on the EpetraExt_Block* classes.

Definition at line 104 of file LOCA_Epetra_Interface_MultiPoint.H.


Constructor & Destructor Documentation

LOCA::Epetra::Interface::MultiPoint::MultiPoint ( const Teuchos::RCP< LOCA::Epetra::Interface::Required > &  iReq,
const Teuchos::RCP< NOX::Epetra::Interface::Jacobian > &  iJac,
const Epetra_MultiVector &  splitMultiVec,
const Teuchos::RCP< Epetra_RowMatrix > &  splitJac,
const Teuchos::RCP< EpetraExt::MultiComm > &  globalComm 
)

Constructor.

The interface, vector, and matrix arguments are all for the spatially decomposed problem. The MultiMpiCOmm communicator gives this class the information needed to construct the space-time system.

Definition at line 44 of file LOCA_Epetra_Interface_MultiPoint.C.

References globalComm, jacobian, numTimeDomains, overlapImporter, rowIndex, rowStencil, solution, solutionOverlap, splitJac, and timeStepsOnTimeDomain.

LOCA::Epetra::Interface::MultiPoint::~MultiPoint (  )  [virtual]

Destructor.

Definition at line 108 of file LOCA_Epetra_Interface_MultiPoint.C.

References jacobian, overlapImporter, rowIndex, rowStencil, solution, and solutionOverlap.


Member Function Documentation

bool LOCA::Epetra::Interface::MultiPoint::computeF ( const Epetra_Vector &  x,
Epetra_Vector &  F,
const FillType  fillFlag 
) [virtual]

NOX Interface function for computing the residual.

Computes F given the vector x. Returns true if computation was successful.

Implements NOX::Epetra::Interface::Required.

Definition at line 119 of file LOCA_Epetra_Interface_MultiPoint.C.

References iReq, overlapImporter, rowIndex, solution, solutionOverlap, splitRes, splitVec, and timeStepsOnTimeDomain.

bool LOCA::Epetra::Interface::MultiPoint::computeJacobian ( const Epetra_Vector &  x,
Epetra_Operator &  Jac 
) [virtual]

NOX Interface function for computing the Jacobian matrix.

Computes Jac given the vector x. Returns true if computation was successful.

Implements NOX::Epetra::Interface::Jacobian.

Definition at line 152 of file LOCA_Epetra_Interface_MultiPoint.C.

References iReq, jacobian, rowIndex, solution, splitJac, splitVec, and timeStepsOnTimeDomain.

void LOCA::Epetra::Interface::MultiPoint::setParameters ( const LOCA::ParameterVector param  )  [virtual]

LOCA Interface function for setting the continuation parameter.

Implements LOCA::Epetra::Interface::Required.

Definition at line 176 of file LOCA_Epetra_Interface_MultiPoint.C.

References iReq.

void LOCA::Epetra::Interface::MultiPoint::printSolution ( const Epetra_Vector &  x_,
double  conParam 
) [virtual]

LOCA Interface function for printing the solution.

Reimplemented from LOCA::Epetra::Interface::Required.

Definition at line 182 of file LOCA_Epetra_Interface_MultiPoint.C.

References conStep, globalComm, iReq, numTimeDomains, rowIndex, solution, splitVec, timeDomain, and timeStepsOnTimeDomain.

EpetraExt::BlockVector & LOCA::Epetra::Interface::MultiPoint::getSolution (  )  [virtual]

Accessor for the global solution BlockVector.

Definition at line 202 of file LOCA_Epetra_Interface_MultiPoint.C.

References solution.

EpetraExt::BlockCrsMatrix & LOCA::Epetra::Interface::MultiPoint::getJacobian (  )  [virtual]

Accessor for the global BlockCrsMatrix.

Definition at line 208 of file LOCA_Epetra_Interface_MultiPoint.C.

References jacobian.

void LOCA::Epetra::Interface::MultiPoint::throwError ( const string &  functionName,
const string &  errorMsg 
) const [virtual]

LOCA Interface exception handler.

Definition at line 214 of file LOCA_Epetra_Interface_MultiPoint.C.


Member Data Documentation

Pointer to interface for usual time-dependent problem.

Definition at line 164 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), computeJacobian(), printSolution(), and setParameters().

Teuchos::RCP<Epetra_RowMatrix> LOCA::Epetra::Interface::MultiPoint::splitJac [private]

Pointer to split (spatial) Jacobian matrix.

Definition at line 168 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeJacobian(), and MultiPoint().

Teuchos::RCP<EpetraExt::MultiComm> LOCA::Epetra::Interface::MultiPoint::globalComm [private]

Pointer to the global (full XYZT) communicator.

Definition at line 171 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by MultiPoint(), and printSolution().

Split (spatial) input vector.

Definition at line 174 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), computeJacobian(), and printSolution().

Split (spatial) residual vector.

Definition at line 177 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF().

EpetraExt::BlockCrsMatrix* LOCA::Epetra::Interface::MultiPoint::jacobian [private]

Pointer to global XYZT Jacobian matrix.

Definition at line 180 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeJacobian(), getJacobian(), MultiPoint(), and ~MultiPoint().

EpetraExt::BlockVector* LOCA::Epetra::Interface::MultiPoint::solution [private]

Pointer to global XYZT solution vector.

Definition at line 183 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), computeJacobian(), getSolution(), MultiPoint(), printSolution(), and ~MultiPoint().

EpetraExt::BlockVector* LOCA::Epetra::Interface::MultiPoint::solutionOverlap [private]

Pointer to global XYZT solution overlap vector.

Definition at line 186 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), MultiPoint(), and ~MultiPoint().

Pointer to global XYZT solution overlap vector importer.

Definition at line 189 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), MultiPoint(), and ~MultiPoint().

Number of time steps computed on each time domain.

Definition at line 192 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), computeJacobian(), MultiPoint(), and printSolution().

Total number of time step domains.

Definition at line 195 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by MultiPoint(), and printSolution().

Time domain on current processor.

Definition at line 198 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by printSolution().

Continuation step number (used in printing).

Definition at line 201 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by printSolution().

std::vector< std::vector<int> >* LOCA::Epetra::Interface::MultiPoint::rowStencil [private]

Stencil for each row of global XYZT Jacobian matrix.

Used in creating global XYZT Jacobian matrix for different finite difference schemes.

Definition at line 209 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by MultiPoint(), and ~MultiPoint().

std::vector<int>* LOCA::Epetra::Interface::MultiPoint::rowIndex [private]

Set of indices into global XYZT Jacobian matrix.

Definition at line 212 of file LOCA_Epetra_Interface_MultiPoint.H.

Referenced by computeF(), computeJacobian(), MultiPoint(), printSolution(), and ~MultiPoint().

Pointer to split (spatial) Jacobian matrix in CRS matrix form.

Definition at line 215 of file LOCA_Epetra_Interface_MultiPoint.H.


The documentation for this class was generated from the following files:

Generated on Wed Oct 21 14:28:31 2009 for Nonlinear Solver Project by  doxygen 1.5.9