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...
 
 RBEIMEvaluationDeserialization (RBEIMEvaluationDeserialization &&)=default
 Special functions. More...
 
 RBEIMEvaluationDeserialization (const RBEIMEvaluationDeserialization &)=default
 
RBEIMEvaluationDeserializationoperator= (const RBEIMEvaluationDeserialization &)=delete
 
RBEIMEvaluationDeserializationoperator= (RBEIMEvaluationDeserialization &&)=delete
 
virtual ~RBEIMEvaluationDeserialization ()
 
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 142 of file rb_data_deserialization.h.

Constructor & Destructor Documentation

◆ RBEIMEvaluationDeserialization() [1/3]

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 178 of file rb_data_deserialization.C.

178  :
179  _rb_eim_eval(rb_eim_eval)
180 {}
RBEIMEvaluation & _rb_eim_eval
The RBEIMEvaluation object we will read into.

◆ RBEIMEvaluationDeserialization() [2/3]

libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::RBEIMEvaluationDeserialization ( RBEIMEvaluationDeserialization &&  )
default

Special functions.

  • This class contains a reference, so it can't be default copy/move-assigned.
  • The destructor is defaulted out of line.

◆ RBEIMEvaluationDeserialization() [3/3]

libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::RBEIMEvaluationDeserialization ( const RBEIMEvaluationDeserialization )
default

◆ ~RBEIMEvaluationDeserialization()

libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::~RBEIMEvaluationDeserialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

RBEIMEvaluationDeserialization& libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::operator= ( const RBEIMEvaluationDeserialization )
delete

◆ operator=() [2/2]

RBEIMEvaluationDeserialization& libMesh::RBDataDeserialization::RBEIMEvaluationDeserialization::operator= ( RBEIMEvaluationDeserialization &&  )
delete

◆ 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 184 of file rb_data_deserialization.C.

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

Referenced by main().

185 {
186  LOG_SCOPE("read_from_file()", "RBEIMEvaluationDeserialization");
187 
188  int fd = open(path.c_str(), O_RDONLY);
189  libmesh_error_msg_if(!fd, "Couldn't open the buffer file: " + path);
190 
191  // Turn off the limit to the amount of data we can read in
192  capnp::ReaderOptions reader_options;
193  reader_options.traversalLimitInWords = std::numeric_limits<uint64_t>::max();
194 
195  std::unique_ptr<capnp::StreamFdMessageReader> message;
196  libmesh_try
197  {
198  message = std::make_unique<capnp::StreamFdMessageReader>(fd, reader_options);
199  }
200  libmesh_catch(...)
201  {
202  libmesh_error_msg("Failed to open capnp buffer");
203  }
204 
205 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
206  RBData::RBEIMEvaluationReal::Reader rb_eim_eval_reader =
207  message->getRoot<RBData::RBEIMEvaluationReal>();
208 #else
209  RBData::RBEIMEvaluationComplex::Reader rb_eim_eval_reader =
210  message->getRoot<RBData::RBEIMEvaluationComplex>();
211 #endif
212 
214  rb_eim_eval_reader);
215 
216  int error = close(fd);
217  libmesh_error_msg_if(error, "Error closing a read-only file descriptor: " + path);
218 }
void load_rb_eim_evaluation_data(RBEIMEvaluation &rb_eim_eval, RBEIMEvaluationReaderNumber &rb_eim_eval_reader)
Load an EIM RB evaluation from a corresponding reader structure in the buffer.
RBEIMEvaluation & _rb_eim_eval
The RBEIMEvaluation object we will read into.

Member Data Documentation

◆ _rb_eim_eval

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

The RBEIMEvaluation object we will read into.

Definition at line 174 of file rb_data_deserialization.h.

Referenced by read_from_file().


The documentation for this class was generated from the following files: