rb_eim_construction.h
Go to the documentation of this file.
1 // rbOOmit: An implementation of the Certified Reduced Basis method.
2 // Copyright (C) 2009, 2010 David J. Knezevic
3 
4 // This file is part of rbOOmit.
5 
6 // rbOOmit is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 
11 // rbOOmit is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 
20 #ifndef LIBMESH_RB_EIM_CONSTRUCTION_H
21 #define LIBMESH_RB_EIM_CONSTRUCTION_H
22 
23 // rbOOmit includes
27 
28 // libMesh includes
29 #include "libmesh/mesh_function.h"
31 
32 // C++ includes
33 
34 namespace libMesh
35 {
36 
48 // ------------------------------------------------------------
49 // RBEIMConstruction class definition
50 
52 {
53 public:
54 
56 
62  const std::string& name,
63  const unsigned int number);
64 
68  virtual ~RBEIMConstruction ();
69 
74 
79 
83  virtual void clear();
84 
89  virtual void process_parameters_file (const std::string& parameters_filename);
90 
95  void set_best_fit_type_flag (const std::string& best_fit_type_string);
96 
100  virtual void print_info();
101 
106  virtual void initialize_rb_construction();
107 
111  virtual Real train_reduced_basis(const std::string& directory_name = "offline_data",
112  const bool resize_rb_eval_data=true);
113 
122  virtual Real truth_solve(int plot_solution);
123 
131  virtual Real compute_best_fit_error();
132 
138  virtual void init_context(FEMContext &c);
139 
143  Number evaluate_mesh_function(unsigned int var_number,
144  Point p);
145 
152  virtual void initialize_eim_assembly_objects();
153 
157  std::vector<ElemAssembly*> get_eim_assembly_objects();
158 
165  virtual AutoPtr<ElemAssembly> build_eim_assembly(unsigned int bf_index) = 0;
166 
167  //----------- PUBLIC DATA MEMBERS -----------//
168 
179 
180 
187 
188 protected:
189 
193  virtual void init_data();
194 
199  virtual void enrich_RB_space();
200 
205  virtual void update_system();
206 
212  virtual void update_RB_system_matrices();
213 
218  virtual Real get_RB_error_bound();
219 
224  virtual bool greedy_termination_test(Real training_greedy_error, int count);
225 
231 
237 
242  std::vector< NumericVector<Number>* > _parametrized_functions_in_training_set;
243 
244 private:
245 
250 
258 
264 
270 
275  std::vector<ElemAssembly*> _rb_eim_assembly_objects;
276 
277 };
278 
279 } // namespace libMesh
280 
281 #endif // LIBMESH_RB_EIM_CONSTRUCTION_H

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:07 UTC

Hosted By:
SourceForge.net Logo