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

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

#include <rb_data_deserialization.h>

Public Member Functions

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

Private Attributes

TransientRBEvaluation_trans_rb_eval
 The TransientRBEvaluation object that we will read into. More...
 

Detailed Description

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

Definition at line 93 of file rb_data_deserialization.h.

Constructor & Destructor Documentation

◆ TransientRBEvaluationDeserialization()

libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::TransientRBEvaluationDeserialization ( TransientRBEvaluation trans_rb_eval)

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

Definition at line 122 of file rb_data_deserialization.C.

122  :
123  _trans_rb_eval(trans_rb_eval)
124 {}

◆ ~TransientRBEvaluationDeserialization()

libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::~TransientRBEvaluationDeserialization ( )
virtual

Destructor.

Definition at line 126 of file rb_data_deserialization.C.

127 {}

Member Function Documentation

◆ read_from_file()

void libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::read_from_file ( const std::string &  path,
bool  read_error_bound_data 
)

Write the Cap'n'Proto buffer to disk.

Definition at line 129 of file rb_data_deserialization.C.

131 {
132  LOG_SCOPE("read_from_file()", "TransientRBEvaluationDeserialization");
133 
134  int fd = open(path.c_str(), O_RDONLY);
135  if (!fd)
136  libmesh_error_msg("Couldn't open the buffer file: " + path);
137 
138  // Turn off the limit to the amount of data we can read in
139  capnp::ReaderOptions reader_options;
140  reader_options.traversalLimitInWords = std::numeric_limits<uint64_t>::max();
141 
142  std::unique_ptr<capnp::StreamFdMessageReader> message;
143  libmesh_try
144  {
145  message = libmesh_make_unique<capnp::StreamFdMessageReader>(fd, reader_options);
146  }
147  libmesh_catch(...)
148  {
149  libmesh_error_msg("Failed to open capnp buffer");
150  }
151 
152 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
153  RBData::TransientRBEvaluationReal::Reader trans_rb_eval_reader =
154  message->getRoot<RBData::TransientRBEvaluationReal>();
155  RBData::RBEvaluationReal::Reader rb_eval_reader =
156  trans_rb_eval_reader.getRbEvaluation();
157 #else
158  RBData::TransientRBEvaluationComplex::Reader trans_rb_eval_reader =
159  message->getRoot<RBData::TransientRBEvaluationComplex>();
160  RBData::RBEvaluationComplex::Reader rb_eval_reader =
161  trans_rb_eval_reader.getRbEvaluation();
162 #endif
163 
165  rb_eval_reader,
166  trans_rb_eval_reader,
167  read_error_bound_data);
168 
169  int error = close(fd);
170  if (error)
171  libmesh_error_msg("Error closing a read-only file descriptor: " + path);
172 }

References _trans_rb_eval, and libMesh::RBDataDeserialization::load_transient_rb_evaluation_data().

Referenced by main().

Member Data Documentation

◆ _trans_rb_eval

TransientRBEvaluation& libMesh::RBDataDeserialization::TransientRBEvaluationDeserialization::_trans_rb_eval
private

The TransientRBEvaluation object that we will read into.

Definition at line 118 of file rb_data_deserialization.h.

Referenced by read_from_file().


The documentation for this class was generated from the following files:
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::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