derived_rb_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_DERIVED_RB_CONSTRUCTION_H
21 #define LIBMESH_DERIVED_RB_CONSTRUCTION_H
22 
23 // Local includes
24 #include "libmesh/dense_vector.h"
25 #include "libmesh/dense_matrix.h"
26 #include "libmesh/fem_context.h"
29 
30 // C++ includes
31 
32 namespace libMesh
33 {
34 
46 template<class Base>
47 class DerivedRBConstruction : public Base
48 {
49 public:
50 
56  const std::string& name,
57  const unsigned int number);
58 
63 
67  sys_type & system () { return *this; }
68 
72  virtual std::string system_type () const;
73 
78  virtual Real truth_solve(int plot_solution);
79 
84  virtual Real train_reduced_basis(const std::string& directory_name = "offline_data",
85  const bool resize_rb_eval_data=true);
86 
94  virtual void set_uber_current_parameters();
95 
100  LIBMESH_CAN_DEFAULT_TO_COMMWORLD);
101 
106  virtual void load_rb_solution();
107 
111  virtual void load_basis_function(unsigned int i);
112 
121 
122 
123  //----------- PUBLIC DATA MEMBERS -----------//
124 
129  std::string uber_system_name;
130 
131 protected:
132 
137 
144  virtual void enrich_RB_space();
145 
152  virtual void update_RB_system_matrices();
153 
159  virtual void compute_Fq_representor_innerprods(bool compute_inner_products=true);
160 
167  virtual void update_residual_terms(bool compute_inner_products=true);
168 
169 private:
170 
171 };
172 
173 // And introduce convenient typedefs
175 
176 } // namespace libMesh
177 
178 
179 #endif // LIBMESH_DERIVED_RB_CONSTRUCTION_H

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

Hosted By:
SourceForge.net Logo