rb_scm_evaluation.h
Go to the documentation of this file.
1 
2 // rbOOmit: An implementation of the Certified Reduced Basis method.
3 // Copyright (C) 2009, 2010 David J. Knezevic
4 
5 // This file is part of rbOOmit.
6 
7 // rbOOmit is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU Lesser General Public
9 // License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 
12 // rbOOmit is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // Lesser General Public License for more details.
16 
17 // You should have received a copy of the GNU Lesser General Public
18 // License along with this library; if not, write to the Free Software
19 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 
21 #ifndef LIBMESH_RB_SCM_EVALUATION_H
22 #define LIBMESH_RB_SCM_EVALUATION_H
23 
24 // rbOOmit includes
27 
28 // libMesh includes
30 
31 // C++ includes
32 
33 namespace libMesh
34 {
35 
46 // ------------------------------------------------------------
47 // RBSCMEvaluation class definition
48 
50  public ParallelObject
51 {
52 public:
53 
58  LIBMESH_CAN_DEFAULT_TO_COMMWORLD);
59 
63  virtual ~RBSCMEvaluation ();
64 
68  void set_rb_theta_expansion(RBThetaExpansion& rb_theta_expansion_in);
69 
74 
78  virtual Real get_SCM_LB();
79 
83  virtual Real get_SCM_UB();
84 
91  Real get_C_J_stability_constraint(unsigned int j) const;
92 
99  void set_C_J_stability_constraint(unsigned int j, Real stability_constraint_in);
100 
106  Real get_SCM_UB_vector(unsigned int j, unsigned int q);
107 
113  void set_SCM_UB_vector(unsigned int j, unsigned int q, Real y_q);
114 
118  unsigned int get_C_J_size()
119  { return libmesh_cast_int<unsigned int>(C_J.size()); }
120 
124  const RBParameters& get_C_J_entry(unsigned int j);
125 
129  Real get_C_J_stability_value(unsigned int j) { return C_J_stability_vector[j]; }
130 
134  Real get_B_min(unsigned int i) const;
135  Real get_B_max(unsigned int i) const;
136 
140  void set_B_min(unsigned int i, Real B_min_val);
141  void set_B_max(unsigned int i, Real B_max_val);
142 
147  virtual void save_current_parameters();
148 
153  virtual void reload_current_parameters();
154 
158  virtual void set_current_parameters_from_C_J(unsigned int C_J_index);
159 
164  virtual void write_offline_data_to_files(const std::string& directory_name = "offline_data",
165  const bool write_binary_data = true);
166 
171  virtual void read_offline_data_from_files(const std::string& directory_name = "offline_data",
172  const bool read_binary_data = true);
173 
174  //----------- PUBLIC DATA MEMBERS -----------//
175 
179  std::vector<Real> B_min;
180  std::vector<Real> B_max;
181 
186  std::vector< RBParameters > C_J;
187 
192  std::vector<Real> C_J_stability_vector;
193 
200  std::vector< std::vector<Real> > SCM_UB_vectors;
201 
202 private:
203 
209 
216 
217 };
218 
219 }
220 
221 #endif // LIBMESH_RB_SCM_EVALUATION_H

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

Hosted By:
SourceForge.net Logo