libMesh
rb_data_deserialization.h
Go to the documentation of this file.
1 // rbOOmit: An implementation of the Certified Reduced Basis method.
2 // Copyright (C) 2009, 2010, 2015 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 RB_DATA_DESERIALIZATION_H
21 #define RB_DATA_DESERIALIZATION_H
22 
23 // This class is only available if we have Cap'n Proto
24 #include "libmesh/libmesh_config.h"
25 #if defined(LIBMESH_HAVE_CAPNPROTO)
26 
27 // libMesh/reduced_basis includes
28 #include "libmesh/rb_data.capnp.h"
29 
30 // Cap'n'Proto includes
31 #include "capnp/message.h"
32 
33 // C++ includes
34 #include <string>
35 
36 namespace libMesh
37 {
38 
39 // Forward declarations
40 class RBEvaluation;
41 class TransientRBEvaluation;
42 class RBEIMEvaluation;
43 class RBSCMEvaluation;
44 class RBParametrized;
45 class ReplicatedMesh;
46 class Elem;
47 class Point;
48 
49 namespace RBDataDeserialization
50 {
51 
61 {
62 public:
63 
69 
74 
78  void read_from_file(const std::string & path, bool read_error_bound_data);
79 
80 private:
81 
86 
87 };
88 
94 {
95 public:
96 
102 
107 
111  void read_from_file(const std::string & path, bool read_error_bound_data);
112 
113 private:
114 
119 
120 };
121 
127 {
128 public:
129 
135 
140 
144  void read_from_file(const std::string & path);
145 
146 private:
147 
152 
153 };
154 
155 // RBSCMEvaluation should only be available
156 // if SLEPc and GLPK support is enabled.
157 #if defined(LIBMESH_HAVE_SLEPC) && (LIBMESH_HAVE_GLPK)
158 
164 {
165 public:
166 
172 
177 
181  void read_from_file(const std::string & path);
182 
183 private:
184 
189 
190 };
191 #endif // LIBMESH_HAVE_SLEPC && LIBMESH_HAVE_GLPK
192 
197 void load_parameter_ranges(RBParametrized & rb_evaluation,
198  RBData::ParameterRanges::Reader & parameter_ranges,
199  RBData::DiscreteParameterList::Reader & discrete_parameters_list);
200 
204 template <typename RBEvaluationReaderNumber>
205 void load_rb_evaluation_data(RBEvaluation & rb_evaluation,
206  RBEvaluationReaderNumber & rb_evaluation_reader,
207  bool read_error_bound_data);
208 
213 template <typename RBEvaluationReaderNumber, typename TransRBEvaluationReaderNumber>
215  RBEvaluationReaderNumber & rb_evaluation_reader,
216  TransRBEvaluationReaderNumber & trans_rb_eval_reader,
217  bool read_error_bound_data);
218 
223 template <typename RBEvaluationReaderNumber, typename RBEIMEvaluationReaderNumber>
225  RBEvaluationReaderNumber & rb_evaluation_reader,
226  RBEIMEvaluationReaderNumber & rb_eim_eval_reader);
227 
228 #if defined(LIBMESH_HAVE_SLEPC) && (LIBMESH_HAVE_GLPK)
229 
237  RBData::RBSCMEvaluation::Reader & rb_scm_eval_reader);
238 #endif // LIBMESH_HAVE_SLEPC && LIBMESH_HAVE_GLPK
239 
243 void load_point(RBData::Point3D::Reader point_reader, Point & point);
244 
248 void load_elem_into_mesh(RBData::MeshElem::Reader mesh_elem_reader,
249  libMesh::Elem * elem,
251 
252 } // namespace RBDataDeserialization
253 
254 } // namespace libMesh
255 
256 #endif // #if defined(LIBMESH_HAVE_CAPNPROTO)
257 
258 #endif // RB_COMPONENT_DATA_DESERIALIZATION_H
libMesh::RBDataDeserialization::load_rb_eim_evaluation_data
void load_rb_eim_evaluation_data(RBEIMEvaluation &rb_eim_eval, RBEvaluationReaderNumber &rb_evaluation_reader, RBEIMEvaluationReaderNumber &rb_eim_eval_reader)
Load an EIM RB evaluation from a corresponding reader structure in the buffer.
Definition: rb_data_deserialization.C:675
libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::_trans_rb_eval
TransientRBEvaluation & _trans_rb_eval
The TransientRBEvaluation object that we will read into.
Definition: rb_data_deserialization.h:118
libMesh::RBDataDeserialization::RBEvaluationDeserialization::~RBEvaluationDeserialization
virtual ~RBEvaluationDeserialization()
Destructor.
Definition: rb_data_deserialization.C:75
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::~RBSCMEvaluationDeserialization
virtual ~RBSCMEvaluationDeserialization()
Destructor.
Definition: rb_data_deserialization.C:244
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::_rb_eim_eval
RBEIMEvaluation & _rb_eim_eval
The RBEIMEvaluation object we will read into.
Definition: rb_data_deserialization.h:151
libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::TransientRBEvaluationDeserialization
TransientRBEvaluationDeserialization(TransientRBEvaluation &trans_rb_eval)
Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data....
Definition: rb_data_deserialization.C:122
libMesh::RBDataDeserialization::load_transient_rb_evaluation_data
void load_transient_rb_evaluation_data(TransientRBEvaluation &trans_rb_eval, RBEvaluationReaderNumber &rb_evaluation_reader, TransRBEvaluationReaderNumber &trans_rb_eval_reader, bool read_error_bound_data)
Load an RB evaluation from a corresponding reader structure in the buffer.
Definition: rb_data_deserialization.C:523
libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::~TransientRBEvaluationDeserialization
virtual ~TransientRBEvaluationDeserialization()
Destructor.
Definition: rb_data_deserialization.C:126
libMesh::RBDataDeserialization::RBEvaluationDeserialization::RBEvaluationDeserialization
RBEvaluationDeserialization(RBEvaluation &rb_eval)
Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data....
Definition: rb_data_deserialization.C:70
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::_rb_scm_eval
RBSCMEvaluation & _rb_scm_eval
The RBSCMEvaluation object we will read into.
Definition: rb_data_deserialization.h:188
libMesh::RBDataDeserialization::RBEvaluationDeserialization::_rb_eval
RBEvaluation & _rb_eval
The RBEvaluation object that we will read into.
Definition: rb_data_deserialization.h:85
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
Definition: factoryfunction.C:55
mesh
MeshBase & mesh
Definition: mesh_communication.C:1257
libMesh::ReplicatedMesh
The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of...
Definition: replicated_mesh.h:47
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::RBSCMEvaluationDeserialization
RBSCMEvaluationDeserialization(RBSCMEvaluation &trans_rb_eval)
Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data....
Definition: rb_data_deserialization.C:240
libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization
This class de-serializes a TransientRBEvaluation object using the Cap'n Proto library.
Definition: rb_data_deserialization.h:93
libMesh::Point
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:38
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::RBEIMEvaluationDeserialization
RBEIMEvaluationDeserialization(RBEIMEvaluation &trans_rb_eval)
Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data....
Definition: rb_data_deserialization.C:180
libMesh::TransientRBEvaluation
This class is part of the rbOOmit framework.
Definition: transient_rb_evaluation.h:50
libMesh::RBEIMEvaluation
This class is part of the rbOOmit framework.
Definition: rb_eim_evaluation.h:51
libMesh::RBDataDeserialization::load_rb_scm_evaluation_data
void load_rb_scm_evaluation_data(RBSCMEvaluation &rb_scm_eval, RBData::RBSCMEvaluation::Reader &rb_scm_eval_reader)
Load an SCM RB evaluation from a corresponding reader structure in the buffer.
Definition: rb_data_deserialization.C:768
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization
This class de-serializes a RBSCMEvaluation object using the Cap'n Proto library.
Definition: rb_data_deserialization.h:163
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::read_from_file
void read_from_file(const std::string &path)
Write the Cap'n'Proto buffer to disk.
Definition: rb_data_deserialization.C:187
libMesh::RBDataDeserialization::load_point
void load_point(RBData::Point3D::Reader point_reader, Point &point)
Helper function that loads point data.
Definition: rb_data_deserialization.C:859
libMesh::RBDataDeserialization::load_elem_into_mesh
void load_elem_into_mesh(RBData::MeshElem::Reader mesh_elem_reader, libMesh::Elem *elem, libMesh::ReplicatedMesh &mesh)
Helper function that loads element data.
Definition: rb_data_deserialization.C:871
libMesh::RBDataDeserialization::RBSCMEvaluationDeserialization::read_from_file
void read_from_file(const std::string &path)
Write the Cap'n'Proto buffer to disk.
Definition: rb_data_deserialization.C:247
libMesh::RBEvaluation
This class is part of the rbOOmit framework.
Definition: rb_evaluation.h:50
libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::read_from_file
void read_from_file(const std::string &path, bool read_error_bound_data)
Write the Cap'n'Proto buffer to disk.
Definition: rb_data_deserialization.C:129
libMesh::RBDataDeserialization::RBEvaluationDeserialization
This class de-serializes an RBEvaluation object using the Cap'n Proto library.
Definition: rb_data_deserialization.h:60
libMesh::Elem
This is the base class from which all geometric element types are derived.
Definition: elem.h:100
libMesh::RBSCMEvaluation
This class is part of the rbOOmit framework.
Definition: rb_scm_evaluation.h:52
libMesh::RBParametrized
This class is part of the rbOOmit framework.
Definition: rb_parametrized.h:44
libMesh::RBDataDeserialization::RBEvaluationDeserialization::read_from_file
void read_from_file(const std::string &path, bool read_error_bound_data)
Write the Cap'n'Proto buffer to disk.
Definition: rb_data_deserialization.C:78
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::~RBEIMEvaluationDeserialization
virtual ~RBEIMEvaluationDeserialization()
Destructor.
Definition: rb_data_deserialization.C:184
libMesh::RBDataDeserialization::load_parameter_ranges
void load_parameter_ranges(RBParametrized &rb_evaluation, RBData::ParameterRanges::Reader &parameter_ranges, RBData::DiscreteParameterList::Reader &discrete_parameters_list)
Load parameter ranges and discrete parameter values into an RBEvaluation from the corresponding struc...
Definition: rb_data_deserialization.C:287
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization
This class de-serializes a RBEIMEvaluation object using the Cap'n Proto library.
Definition: rb_data_deserialization.h:126
libMesh::RBDataDeserialization::load_rb_evaluation_data
void load_rb_evaluation_data(RBEvaluation &rb_evaluation, RBEvaluationReaderNumber &rb_evaluation_reader, bool read_error_bound_data)
Load an RB evaluation from a corresponding reader structure in the buffer.
Definition: rb_data_deserialization.C:333