libMesh
Public Member Functions | Private Attributes | List of all members
libMesh::RBDataSerialization::RBEIMEvaluationSerialization Class Reference

This class serializes an RBEIMEvaluation object using the Cap'n Proto library. More...

#include <rb_data_serialization.h>

Public Member Functions

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

Private Attributes

RBEIMEvaluation_rb_eim_eval
 The RBEvaluation object that will be written to disk. More...
 

Detailed Description

This class serializes an RBEIMEvaluation object using the Cap'n Proto library.

Definition at line 124 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ RBEIMEvaluationSerialization()

libMesh::RBDataSerialization::RBEIMEvaluationSerialization::RBEIMEvaluationSerialization ( RBEIMEvaluation rb_eval)

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

Definition at line 168 of file rb_data_serialization.C.

169  :
170  _rb_eim_eval(rb_eim_eval)
171 {
172 }

◆ ~RBEIMEvaluationSerialization()

libMesh::RBDataSerialization::RBEIMEvaluationSerialization::~RBEIMEvaluationSerialization ( )
virtual

Destructor.

Definition at line 174 of file rb_data_serialization.C.

175 {
176 }

Member Function Documentation

◆ write_to_file()

void libMesh::RBDataSerialization::RBEIMEvaluationSerialization::write_to_file ( const std::string &  path)

Write the Cap'n'Proto buffer to disk.

Definition at line 178 of file rb_data_serialization.C.

179 {
180  LOG_SCOPE("write_to_file()", "RBEIMEvaluationSerialization");
181 
182  if (_rb_eim_eval.comm().rank() == 0)
183  {
184  capnp::MallocMessageBuilder message;
185 
186 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
187  RBData::RBEIMEvaluationReal::Builder rb_eim_eval_builder =
188  message.initRoot<RBData::RBEIMEvaluationReal>();
189  RBData::RBEvaluationReal::Builder rb_eval_builder =
190  rb_eim_eval_builder.initRbEvaluation();
191 #else
192  RBData::RBEIMEvaluationComplex::Builder rb_eim_eval_builder =
193  message.initRoot<RBData::RBEIMEvaluationComplex>();
194  RBData::RBEvaluationComplex::Builder rb_eval_builder =
195  rb_eim_eval_builder.initRbEvaluation();
196 #endif
197 
199  rb_eval_builder,
200  rb_eim_eval_builder);
201 
202  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
203  if (!fd)
204  libmesh_error_msg("Error opening a write-only file descriptor to " + path);
205 
206  capnp::writeMessageToFd(fd, message);
207 
208  int error = close(fd);
209  if (error)
210  libmesh_error_msg("Error closing a write-only file descriptor to " + path);
211  }
212 }

References _rb_eim_eval, libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), and libMesh::ParallelObject::comm().

Referenced by main().

Member Data Documentation

◆ _rb_eim_eval

RBEIMEvaluation& libMesh::RBDataSerialization::RBEIMEvaluationSerialization::_rb_eim_eval
private

The RBEvaluation object that will be written to disk.

Definition at line 149 of file rb_data_serialization.h.

Referenced by write_to_file().


The documentation for this class was generated from the following files:
libMesh::ParallelObject::comm
const Parallel::Communicator & comm() const
Definition: parallel_object.h:94
libMesh::RBDataSerialization::RBEIMEvaluationSerialization::_rb_eim_eval
RBEIMEvaluation & _rb_eim_eval
The RBEvaluation object that will be written to disk.
Definition: rb_data_serialization.h:149
libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder
void add_rb_eim_evaluation_data_to_builder(RBEIMEvaluation &rb_eim_eval, RBEvaluationBuilderNumber &rb_eval_builder, RBEIMEvaluationBuilderNumber &rb_eim_eval_builder)
Add data for an RBEIMEvaluation to the builder.
Definition: rb_data_serialization.C:602