44 #ifndef GLP_APP_ADV_DIFF_REACT_OPT_MODEL_HPP
45 #define GLP_APP_ADV_DIFF_REACT_OPT_MODEL_HPP
49 #include "Epetra_Map.h"
50 #include "Epetra_Vector.h"
51 #include "Epetra_Comm.h"
52 #include "Epetra_CrsGraph.h"
53 #include "Teuchos_VerboseObject.hpp"
54 #include "Teuchos_Array.hpp"
164 ,
public Teuchos::VerboseObject<AdvDiffReactOptModel>
170 const Teuchos::RCP<const Epetra_Comm> &comm
176 ,
const char meshFile[]
180 ,
const double reactionRate
181 ,
const bool normalizeBasis
182 ,
const bool supportDerivatives
186 void set_q( Teuchos::RCP<const Epetra_Vector>
const& q );
189 Teuchos::RCP<GLpApp::GLpYUEpetraDataPool>
getDataPool();
192 Teuchos::RCP<const Epetra_MultiVector>
get_B_bar()
const;
198 Teuchos::RCP<const Epetra_Map>
get_x_map()
const;
200 Teuchos::RCP<const Epetra_Map>
get_f_map()
const;
202 Teuchos::RCP<const Epetra_Map>
get_p_map(
int l)
const;
204 Teuchos::RCP<const Epetra_Map>
get_g_map(
int j)
const;
206 Teuchos::RCP<const Epetra_Vector>
get_x_init()
const;
208 Teuchos::RCP<const Epetra_Vector>
get_p_init(
int l)
const;
218 Teuchos::RCP<Epetra_Operator>
create_W()
const;
235 typedef Teuchos::Array<Teuchos::RCP<const Epetra_Map> > RCP_Eptra_Map_Array_t;
236 typedef Teuchos::Array<Teuchos::RCP<Epetra_Vector> > RCP_Eptra_Vector_Array_t;
241 static const int Np_ = 2;
242 static const int p_bndy_idx = 0;
243 static const int p_rx_idx = 1;
245 bool supportDerivatives_;
249 Teuchos::RCP<GLpApp::GLpYUEpetraDataPool> dat_;
251 Teuchos::RCP<const Epetra_Vector> q_;
253 Teuchos::RCP<const Epetra_Map> map_p_bar_;
254 Teuchos::RCP<Epetra_MultiVector> B_bar_;
256 Teuchos::RCP<const Epetra_Comm> epetra_comm_;
257 Teuchos::RCP<const Epetra_Map> map_x_;
258 RCP_Eptra_Map_Array_t map_p_;
259 Teuchos::RCP<const Epetra_Map> map_f_;
260 Teuchos::RCP<const Epetra_Map> map_g_;
262 Teuchos::RCP<Epetra_Vector> x0_;
263 Teuchos::RCP<Epetra_Vector> xL_;
264 Teuchos::RCP<Epetra_Vector> xU_;
265 RCP_Eptra_Vector_Array_t p0_;
266 RCP_Eptra_Vector_Array_t pL_;
267 RCP_Eptra_Vector_Array_t pU_;
268 Teuchos::RCP<Epetra_Vector> gL_;
269 Teuchos::RCP<Epetra_Vector> gU_;
271 Teuchos::RCP<Epetra_CrsGraph> W_graph_;
277 #endif // GLP_APP_ADV_DIFF_REACT_OPT_MODEL_HPP
Teuchos::RCP< const Epetra_Map > get_x_map() const
PDE-constrained inverse problem based on a 2D discretization of a diffusion/reaction system...
Teuchos::RCP< GLpApp::GLpYUEpetraDataPool > getDataPool()
AdvDiffReactOptModel(const Teuchos::RCP< const Epetra_Comm > &comm, const double beta, const double len_x, const double len_y, const int local_nx, const int local_ny, const char meshFile[], const int np, const double x0, const double p0, const double reactionRate, const bool normalizeBasis, const bool supportDerivatives)
Constructor.
void evalModel(const InArgs &inArgs, const OutArgs &outArgs) const
Teuchos::RCP< const Epetra_Vector > get_p_init(int l) const
Teuchos::RCP< const Epetra_Vector > get_x_lower_bounds() const
Teuchos::RCP< Epetra_Operator > create_DfDp_op(int l) const
InArgs createInArgs() const
Teuchos::RCP< const Epetra_Vector > get_p_upper_bounds(int l) const
Teuchos::RCP< const Epetra_Map > get_p_map(int l) const
.
Teuchos::RCP< const Epetra_Vector > get_p_lower_bounds(int l) const
Teuchos::RCP< const Epetra_Vector > get_x_init() const
Teuchos::RCP< const Epetra_Map > get_f_map() const
OutArgs createOutArgs() const
void set_q(Teuchos::RCP< const Epetra_Vector > const &q)
Teuchos::RCP< const Epetra_Map > get_g_map(int j) const
.
Teuchos::RCP< const Epetra_MultiVector > get_B_bar() const
Teuchos::RCP< Epetra_Operator > create_W() const
Base interface for evaluating a stateless "model".
Teuchos::RCP< const Epetra_Vector > get_x_upper_bounds() const