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, bool use_packing=false)
 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 144 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 171 of file rb_data_serialization.C.

172  :
173  _rb_eim_eval(rb_eim_eval)
174 {
175 }
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,
bool  use_packing = false 
)

Write the Cap'n'Proto buffer to disk.

If use_packing is true, the file is written using the "packed" scheme, which can reduce the filesize on disk.

Definition at line 179 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().

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 #else
190  RBData::RBEIMEvaluationComplex::Builder rb_eim_eval_builder =
191  message.initRoot<RBData::RBEIMEvaluationComplex>();
192 #endif
193 
195  rb_eim_eval_builder);
196 
197  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
198  libmesh_error_msg_if(!fd, "Error opening a write-only file descriptor to " + path);
199 
200  if(use_packing)
201  capnp::writePackedMessageToFd(fd, message);
202  else
203  capnp::writeMessageToFd(fd, message);
204 
205  int error = close(fd);
206  libmesh_error_msg_if(error, "Error closing a write-only file descriptor to " + path);
207  }
208 }
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 178 of file rb_data_serialization.h.

Referenced by write_to_file().


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