44#ifndef GLPAPP_GLPYUEPETRADATAPOOL_H
45#define GLPAPP_GLPYUEPETRADATAPOOL_H
51#include "Epetra_Map.h"
52#include "Epetra_MultiVector.h"
53#include "Epetra_Vector.h"
54#include "Epetra_Import.h"
55#include "Epetra_Export.h"
56#include "Epetra_CrsMatrix.h"
57#include "Epetra_FECrsMatrix.h"
58#include "Epetra_LinearProblem.h"
59#include "Epetra_LAPACK.h"
60#include "Epetra_FEVector.h"
61#include "Epetra_IntSerialDenseVector.h"
62#include "Epetra_SerialDenseMatrix.h"
63#include "Epetra_SerialDenseVector.h"
66#include "Epetra_SerialDenseMatrix.h"
67#include "Epetra_SerialDenseVector.h"
70# include "Epetra_MpiComm.h"
72# include "Epetra_SerialComm.h"
82 Teuchos::RCP<const Epetra_Comm>
const& commptr
98 int solveAugsys(
const Teuchos::RCP<const Epetra_MultiVector> & rhsy,
99 const Teuchos::RCP<const Epetra_MultiVector> & rhsu,
100 const Teuchos::RCP<const Epetra_MultiVector> & rhsp,
101 const Teuchos::RCP<Epetra_MultiVector> & y,
102 const Teuchos::RCP<Epetra_MultiVector> & u,
103 const Teuchos::RCP<Epetra_MultiVector> & p,
108 Teuchos::RCP<Epetra_FECrsMatrix>
getA();
109 Teuchos::RCP<Epetra_FECrsMatrix>
getB();
110 Teuchos::RCP<Epetra_FECrsMatrix>
getH();
111 Teuchos::RCP<Epetra_FECrsMatrix>
getR();
112 Teuchos::RCP<Epetra_CrsMatrix>
getAugmat();
113 Teuchos::RCP<Epetra_FECrsMatrix>
getNpy();
115 Teuchos::RCP<Epetra_FEVector>
getb();
116 Teuchos::RCP<Epetra_FEVector>
getq();
117 Teuchos::RCP<Epetra_FEVector>
getNy();
120 void computeNy(
const Teuchos::RCP<const Epetra_MultiVector> & y);
123 void computeNpy(
const Teuchos::RCP<const Epetra_MultiVector> & y);
128 Teuchos::RCP<const Epetra_SerialDenseMatrix>
getipcoords();
129 Teuchos::RCP<const Epetra_IntSerialDenseVector>
getipindx();
130 Teuchos::RCP<const Epetra_SerialDenseMatrix>
getpcoords();
131 Teuchos::RCP<const Epetra_IntSerialDenseVector>
getpindx();
132 Teuchos::RCP<const Epetra_IntSerialDenseMatrix>
gett();
133 Teuchos::RCP<const Epetra_IntSerialDenseMatrix>
gete();
138 void PrintVec(
const Teuchos::RCP<const Epetra_Vector> & x );
142 Teuchos::RCP<const Epetra_Comm> commptr_;
145 Teuchos::RCP<Epetra_SerialDenseMatrix> ipcoords_;
147 Teuchos::RCP<Epetra_IntSerialDenseVector> ipindx_;
149 Teuchos::RCP<Epetra_SerialDenseMatrix> pcoords_;
151 Teuchos::RCP<Epetra_IntSerialDenseVector> pindx_;
153 Teuchos::RCP<Epetra_IntSerialDenseMatrix> t_;
155 Teuchos::RCP<Epetra_IntSerialDenseMatrix> e_;
158 Teuchos::RCP<Epetra_FECrsMatrix> A_;
160 Teuchos::RCP<Epetra_FECrsMatrix> B_;
162 Teuchos::RCP<Epetra_FECrsMatrix> H_;
164 Teuchos::RCP<Epetra_FECrsMatrix> R_;
167 Teuchos::RCP<Epetra_MultiVector> B_bar_;
173 Teuchos::RCP<Epetra_CrsMatrix> Augmat_;
176 Teuchos::RCP<Epetra_FECrsMatrix> Npy_;
179 Teuchos::RCP<Epetra_FEVector> b_;
181 Teuchos::RCP<Epetra_FEVector> q_;
183 Teuchos::RCP<Epetra_FEVector> Ny_;
224 void Print(std::ostream& os)
const;
Teuchos::RCP< Epetra_FEVector > getNy()
Teuchos::RCP< Epetra_FECrsMatrix > getB()
Teuchos::RCP< Epetra_FECrsMatrix > getR()
Teuchos::RCP< const Epetra_SerialDenseMatrix > getpcoords()
Teuchos::RCP< const Epetra_SerialDenseMatrix > getipcoords()
Teuchos::RCP< const Epetra_IntSerialDenseVector > getipindx()
int solveAugsys(const Teuchos::RCP< const Epetra_MultiVector > &rhsy, const Teuchos::RCP< const Epetra_MultiVector > &rhsu, const Teuchos::RCP< const Epetra_MultiVector > &rhsp, const Teuchos::RCP< Epetra_MultiVector > &y, const Teuchos::RCP< Epetra_MultiVector > &u, const Teuchos::RCP< Epetra_MultiVector > &p, double tol)
Solves augmented system.
Teuchos::RCP< const Epetra_Comm > getCommPtr()
Teuchos::RCP< Epetra_FEVector > getb()
void computeNy(const Teuchos::RCP< const Epetra_MultiVector > &y)
Calls the function that computes the nonlinear term.
void computeNpy(const Teuchos::RCP< const Epetra_MultiVector > &y)
Calls the function that computes the Jacobian of the nonlinear term.
Teuchos::RCP< const Epetra_IntSerialDenseMatrix > gete()
void computeAll(const GenSQP::Vector &x)
Calls functions to compute nonlinear quantities and the augmented system matrix.
Teuchos::RCP< Epetra_FECrsMatrix > getA()
void PrintVec(const Teuchos::RCP< const Epetra_Vector > &x)
Outputs the solution vector to files.
Teuchos::RCP< Epetra_CrsMatrix > getAugmat()
void computeAugmat()
Assembles the augmented system (KKT-type) matrix.
Teuchos::RCP< Epetra_FECrsMatrix > getNpy()
Teuchos::RCP< const Epetra_IntSerialDenseMatrix > gett()
Teuchos::RCP< Epetra_FEVector > getq()
Teuchos::RCP< const Epetra_IntSerialDenseVector > getpindx()
Teuchos::RCP< Epetra_FECrsMatrix > getH()
void Print(std::ostream &os) const
Epetra_SerialDenseMatrix S3
Epetra_SerialDenseMatrix Nodes
Epetra_SerialDenseVector Nw
Epetra_SerialDenseMatrix S2
Epetra_SerialDenseMatrix * NdNdx2Nw
Epetra_SerialDenseMatrix Nx1
Epetra_SerialDenseMatrix * NdNdx1Nw
Epetra_SerialDenseMatrix N
Epetra_SerialDenseMatrix S1
Epetra_SerialDenseMatrix Nx2
Epetra_SerialDenseMatrix * NNNw
Epetra_SerialDenseVector Weights
Epetra_SerialDenseMatrix NNw
Provides the interface to a generic data pool.
Provides the interface to generic abstract vector libraries.