EpetraExt Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
EpetraMultiPointModelEval4DOpt.hpp
Go to the documentation of this file.
1/*
2//@HEADER
3// ***********************************************************************
4//
5// EpetraExt: Epetra Extended - Linear Algebra Services Package
6// Copyright (2011) Sandia Corporation
7//
8// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9// the U.S. Government retains certain rights in this software.
10//
11// Redistribution and use in source and binary forms, with or without
12// modification, are permitted provided that the following conditions are
13// met:
14//
15// 1. Redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer.
17//
18// 2. Redistributions in binary form must reproduce the above copyright
19// notice, this list of conditions and the following disclaimer in the
20// documentation and/or other materials provided with the distribution.
21//
22// 3. Neither the name of the Corporation nor the names of the
23// contributors may be used to endorse or promote products derived from
24// this software without specific prior written permission.
25//
26// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39//
40// ***********************************************************************
41//@HEADER
42*/
43
44#ifndef EPETRA_MULTI_POINT_MODEL_EVAL_4D_OPT_HPP
45#define EPETRA_MULTI_POINT_MODEL_EVAL_4D_OPT_HPP
46
48#include "Epetra_Map.h"
49#include "Epetra_Vector.h"
50#include "Epetra_Comm.h"
51#include "Epetra_CrsGraph.h"
52
74public:
75
78 Teuchos::RCP<Epetra_Comm> epetra_comm
79 ,const double xt0 = 1.0
80 ,const double xt1 = 1.0
81 ,const double pt0 = 2.0
82 ,const double pt1 = 0.0
83 ,const double d = 10.0
84 ,const double x00 = 1.0
85 ,const double x01 = 1.0
86 ,const double p00 = 2.0
87 ,const double p01 = 0.0
88 ,const double q0 = 0.0
89 );
90
92 void set_p_bounds( double pL0, double pL1, double pU0, double pU1 );
93
95 void set_x_bounds( double xL0, double xL1, double xU0, double xU1 );
96
99
101 Teuchos::RCP<const Epetra_Map> get_x_map() const;
103 Teuchos::RCP<const Epetra_Map> get_f_map() const;
105 Teuchos::RCP<const Epetra_Map> get_p_map(int l) const;
107 Teuchos::RCP<const Epetra_Map> get_g_map(int j) const;
109 Teuchos::RCP<const Epetra_Vector> get_x_init() const;
111 Teuchos::RCP<const Epetra_Vector> get_p_init(int l) const;
113 Teuchos::RCP<const Epetra_Vector> get_x_lower_bounds() const;
115 Teuchos::RCP<const Epetra_Vector> get_x_upper_bounds() const;
117 Teuchos::RCP<const Epetra_Vector> get_p_lower_bounds(int l) const;
119 Teuchos::RCP<const Epetra_Vector> get_p_upper_bounds(int l) const;
121 Teuchos::RCP<Epetra_Operator> create_W() const;
123 InArgs createInArgs() const;
125 OutArgs createOutArgs() const;
127 void evalModel( const InArgs& inArgs, const OutArgs& outArgs ) const;
128
130
131private:
132
133 // /////////////////////////////////////
134 // Private member data
135
137
138 Teuchos::RCP<const Epetra_Comm> epetra_comm_;
139
140 double xt0_;
141 double xt1_;
142 double pt0_;
143 double pt1_;
144 double d_;
145 Teuchos::RCP<const Epetra_Map> map_x_;
146 Teuchos::RCP<const Epetra_Map> map_p_;
147 Teuchos::RCP<const Epetra_Map> map_q_;
148 Teuchos::RCP<const Epetra_Map> map_g_;
149
150 Teuchos::RCP<Epetra_Vector> xL_;
151 Teuchos::RCP<Epetra_Vector> xU_;
152 Teuchos::RCP<Epetra_Vector> pL_;
153 Teuchos::RCP<Epetra_Vector> pU_;
154 Teuchos::RCP<Epetra_Vector> gL_;
155 Teuchos::RCP<Epetra_Vector> gU_;
156 Teuchos::RCP<Epetra_Vector> x0_;
157 Teuchos::RCP<Epetra_Vector> p0_;
158 Teuchos::RCP<Epetra_Vector> q_;
159 Teuchos::RCP<Epetra_Vector> qL_;
160 Teuchos::RCP<Epetra_Vector> qU_;
161
162 Teuchos::RCP<Epetra_CrsGraph> W_graph_;
163
164};
165
166#endif // EPETRA_MULTI_POINT_MODEL_EVAL_4D_OPT_HPP
Base interface for evaluating a stateless "model".
A simple serial example model which includes a parameter subvector and a response function that can b...
Teuchos::RCP< const Epetra_Map > map_p_
void evalModel(const InArgs &inArgs, const OutArgs &outArgs) const
Teuchos::RCP< Epetra_Operator > create_W() const
Teuchos::RCP< const Epetra_Vector > get_x_init() const
Teuchos::RCP< const Epetra_Vector > get_p_upper_bounds(int l) const
Teuchos::RCP< const Epetra_Vector > get_x_upper_bounds() const
Teuchos::RCP< const Epetra_Map > get_x_map() const
Teuchos::RCP< const Epetra_Vector > get_p_init(int l) const
Teuchos::RCP< Epetra_CrsGraph > W_graph_
Teuchos::RCP< const Epetra_Map > map_x_
Teuchos::RCP< const Epetra_Map > map_g_
Teuchos::RCP< const Epetra_Map > get_p_map(int l) const
\breif .
void set_x_bounds(double xL0, double xL1, double xU0, double xU1)
Teuchos::RCP< const Epetra_Map > get_f_map() const
Teuchos::RCP< const Epetra_Comm > epetra_comm_
Teuchos::RCP< const Epetra_Vector > get_p_lower_bounds(int l) const
Teuchos::RCP< const Epetra_Map > map_q_
Teuchos::RCP< const Epetra_Map > get_g_map(int j) const
\breif .
void set_p_bounds(double pL0, double pL1, double pU0, double pU1)
Teuchos::RCP< const Epetra_Vector > get_x_lower_bounds() const