libMesh
Public Member Functions | Private Attributes | List of all members
libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization Class Reference

This class de-serializes a RBEIMEvaluation object using the Cap'n Proto library. More...

#include <rb_data_deserialization.h>

Public Member Functions

 RBEIMEvaluationDeserialization (RBEIMEvaluation &trans_rb_eval)
 Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp. More...
 
virtual ~RBEIMEvaluationDeserialization ()
 Destructor. More...
 
void read_from_file (const std::string &path)
 Write the Cap'n'Proto buffer to disk. More...
 

Private Attributes

RBEIMEvaluation_rb_eim_eval
 The RBEIMEvaluation object we will read into. More...
 

Detailed Description

This class de-serializes a RBEIMEvaluation object using the Cap'n Proto library.

Definition at line 126 of file rb_data_deserialization.h.

Constructor & Destructor Documentation

◆ RBEIMEvaluationDeserialization()

libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::RBEIMEvaluationDeserialization ( RBEIMEvaluation trans_rb_eval)

Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp.

Definition at line 180 of file rb_data_deserialization.C.

180  :
181  _rb_eim_eval(rb_eim_eval)
182 {}

◆ ~RBEIMEvaluationDeserialization()

libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::~RBEIMEvaluationDeserialization ( )
virtual

Destructor.

Definition at line 184 of file rb_data_deserialization.C.

185 {}

Member Function Documentation

◆ read_from_file()

void libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::read_from_file ( const std::string &  path)

Write the Cap'n'Proto buffer to disk.

Definition at line 187 of file rb_data_deserialization.C.

188 {
189  LOG_SCOPE("read_from_file()", "RBEIMEvaluationDeserialization");
190 
191  int fd = open(path.c_str(), O_RDONLY);
192  if (!fd)
193  libmesh_error_msg("Couldn't open the buffer file: " + path);
194 
195  // Turn off the limit to the amount of data we can read in
196  capnp::ReaderOptions reader_options;
197  reader_options.traversalLimitInWords = std::numeric_limits<uint64_t>::max();
198 
199  std::unique_ptr<capnp::StreamFdMessageReader> message;
200  libmesh_try
201  {
202  message = libmesh_make_unique<capnp::StreamFdMessageReader>(fd, reader_options);
203  }
204  libmesh_catch(...)
205  {
206  libmesh_error_msg("Failed to open capnp buffer");
207  }
208 
209 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
210  RBData::RBEIMEvaluationReal::Reader rb_eim_eval_reader =
211  message->getRoot<RBData::RBEIMEvaluationReal>();
212  RBData::RBEvaluationReal::Reader rb_eval_reader =
213  rb_eim_eval_reader.getRbEvaluation();
214 #else
215  RBData::RBEIMEvaluationComplex::Reader rb_eim_eval_reader =
216  message->getRoot<RBData::RBEIMEvaluationComplex>();
217  RBData::RBEvaluationComplex::Reader rb_eval_reader =
218  rb_eim_eval_reader.getRbEvaluation();
219 #endif
220 
222  rb_eval_reader,
223  rb_eim_eval_reader);
224 
225  int error = close(fd);
226  if (error)
227  libmesh_error_msg("Error closing a read-only file descriptor: " + path);
228 }

References _rb_eim_eval, and libMesh::RBDataDeserialization::load_rb_eim_evaluation_data().

Referenced by main().

Member Data Documentation

◆ _rb_eim_eval

RBEIMEvaluation& libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::_rb_eim_eval
private

The RBEIMEvaluation object we will read into.

Definition at line 151 of file rb_data_deserialization.h.

Referenced by read_from_file().


The documentation for this class was generated from the following files:
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::RBEIMEvaluationDeserialization::_rb_eim_eval
RBEIMEvaluation & _rb_eim_eval
The RBEIMEvaluation object we will read into.
Definition: rb_data_deserialization.h:151