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...
 
 RBEIMEvaluationSerialization (RBEIMEvaluationSerialization &&)=default
 Special functions. More...
 
 RBEIMEvaluationSerialization (const RBEIMEvaluationSerialization &)=default
 
RBEIMEvaluationSerializationoperator= (const RBEIMEvaluationSerialization &)=delete
 
RBEIMEvaluationSerializationoperator= (RBEIMEvaluationSerialization &&)=delete
 
virtual ~RBEIMEvaluationSerialization ()
 
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 140 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ RBEIMEvaluationSerialization() [1/3]

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 164 of file rb_data_serialization.C.

165  :
166  _rb_eim_eval(rb_eim_eval)
167 {
168 }
RBEIMEvaluation & _rb_eim_eval
The RBEvaluation object that will be written to disk.

◆ RBEIMEvaluationSerialization() [2/3]

libMesh::RBDataSerialization::RBEIMEvaluationSerialization::RBEIMEvaluationSerialization ( RBEIMEvaluationSerialization &&  )
default

Special functions.

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

◆ RBEIMEvaluationSerialization() [3/3]

libMesh::RBDataSerialization::RBEIMEvaluationSerialization::RBEIMEvaluationSerialization ( const RBEIMEvaluationSerialization )
default

◆ ~RBEIMEvaluationSerialization()

libMesh::RBDataSerialization::RBEIMEvaluationSerialization::~RBEIMEvaluationSerialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

RBEIMEvaluationSerialization& libMesh::RBDataSerialization::RBEIMEvaluationSerialization::operator= ( const RBEIMEvaluationSerialization )
delete

◆ operator=() [2/2]

RBEIMEvaluationSerialization& libMesh::RBDataSerialization::RBEIMEvaluationSerialization::operator= ( RBEIMEvaluationSerialization &&  )
delete

◆ 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 172 of file rb_data_serialization.C.

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

Referenced by main().

173 {
174  LOG_SCOPE("write_to_file()", "RBEIMEvaluationSerialization");
175 
176  if (_rb_eim_eval.comm().rank() == 0)
177  {
178  capnp::MallocMessageBuilder message;
179 
180 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
181  RBData::RBEIMEvaluationReal::Builder rb_eim_eval_builder =
182  message.initRoot<RBData::RBEIMEvaluationReal>();
183 #else
184  RBData::RBEIMEvaluationComplex::Builder rb_eim_eval_builder =
185  message.initRoot<RBData::RBEIMEvaluationComplex>();
186 #endif
187 
189  rb_eim_eval_builder);
190 
191  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
192  libmesh_error_msg_if(!fd, "Error opening a write-only file descriptor to " + path);
193 
194  capnp::writeMessageToFd(fd, message);
195 
196  int error = close(fd);
197  libmesh_error_msg_if(error, "Error closing a write-only file descriptor to " + path);
198  }
199 }
void add_rb_eim_evaluation_data_to_builder(RBEIMEvaluation &rb_eim_eval, RBEIMEvaluationBuilderNumber &rb_eim_eval_builder)
Add data for an RBEIMEvaluation to the builder.
processor_id_type rank() const
const Parallel::Communicator & comm() const
RBEIMEvaluation & _rb_eim_eval
The RBEvaluation object that will be written to disk.

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 172 of file rb_data_serialization.h.

Referenced by write_to_file().


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