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_;
198 Epetra_SerialDenseMatrix
N;
200 Epetra_SerialDenseMatrix
Nx1;
202 Epetra_SerialDenseMatrix
Nx2;
204 Epetra_SerialDenseMatrix
S1;
205 Epetra_SerialDenseMatrix
S2;
206 Epetra_SerialDenseMatrix
S3;
208 Epetra_SerialDenseVector
Nw;
210 Epetra_SerialDenseMatrix
NNw;
212 Epetra_SerialDenseMatrix *
NNNw;
224 void Print(std::ostream& os)
const;
229 #endif // GLPAPP_GLPYUEPETRADATAPOOL_H Teuchos::RCP< Epetra_FECrsMatrix > getR()
Teuchos::RCP< Epetra_FEVector > getq()
Teuchos::RCP< const Epetra_IntSerialDenseVector > getpindx()
void PrintVec(const Teuchos::RCP< const Epetra_Vector > &x)
Outputs the solution vector to files.
Epetra_SerialDenseMatrix NNw
Teuchos::RCP< const Epetra_IntSerialDenseMatrix > gett()
void computeNpy(const Teuchos::RCP< const Epetra_MultiVector > &y)
Calls the function that computes the Jacobian of the nonlinear term.
Epetra_SerialDenseMatrix Nx2
Epetra_SerialDenseMatrix * NdNdx2Nw
Epetra_SerialDenseMatrix S3
void computeNy(const Teuchos::RCP< const Epetra_MultiVector > &y)
Calls the function that computes the nonlinear term.
Epetra_SerialDenseVector Weights
Epetra_SerialDenseMatrix S1
GLpYUEpetraDataPool(Teuchos::RCP< const Epetra_Comm > const &commptr, const double beta, const double len_x, const double len_y, const int local_nx, const int local_ny, const char myfile[], const bool trace)
Teuchos::RCP< const Epetra_IntSerialDenseMatrix > gete()
Provides the interface to generic abstract vector libraries.
Teuchos::RCP< Epetra_FECrsMatrix > getNpy()
Provides the interface to a generic data pool.
Epetra_SerialDenseMatrix S2
Epetra_SerialDenseMatrix * NdNdx1Nw
void computeAugmat()
Assembles the augmented system (KKT-type) matrix.
Teuchos::RCP< const Epetra_SerialDenseMatrix > getpcoords()
Teuchos::RCP< const Epetra_IntSerialDenseVector > getipindx()
Teuchos::RCP< Epetra_FECrsMatrix > getH()
Teuchos::RCP< const Epetra_SerialDenseMatrix > getipcoords()
void computeAll(const GenSQP::Vector &x)
Calls functions to compute nonlinear quantities and the augmented system matrix.
Teuchos::RCP< Epetra_FECrsMatrix > getB()
Teuchos::RCP< Epetra_FECrsMatrix > getA()
Epetra_SerialDenseMatrix Nodes
Teuchos::RCP< Epetra_CrsMatrix > getAugmat()
Epetra_SerialDenseMatrix Nx1
Epetra_SerialDenseVector Nw
Epetra_SerialDenseMatrix * NNNw
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< Epetra_FEVector > getNy()
Teuchos::RCP< const Epetra_Comm > getCommPtr()
Epetra_SerialDenseMatrix N
Teuchos::RCP< Epetra_FEVector > getb()