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

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

#include <rb_data_serialization.h>

Public Member Functions

 RBEvaluationSerialization (RBEvaluation &rb_eval)
 Initialize a new buffer using the structure from the Cap'n'Proto schema described in rb_data.capnp. More...
 
 RBEvaluationSerialization (RBEvaluationSerialization &&)=default
 Special functions. More...
 
 RBEvaluationSerialization (const RBEvaluationSerialization &)=default
 
RBEvaluationSerializationoperator= (const RBEvaluationSerialization &)=delete
 
RBEvaluationSerializationoperator= (RBEvaluationSerialization &&)=delete
 
virtual ~RBEvaluationSerialization ()
 
void write_to_file (const std::string &path)
 Write the Cap'n'Proto buffer to disk. More...
 

Private Attributes

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

Detailed Description

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

Author
David Knezevic
Date
2015 Serializes RBEvaluation objects using Cap'n Proto.

Definition at line 58 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ RBEvaluationSerialization() [1/3]

libMesh::RBDataSerialization::RBEvaluationSerialization::RBEvaluationSerialization ( RBEvaluation rb_eval)

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

Definition at line 76 of file rb_data_serialization.C.

77  :
78  _rb_eval(rb_eval)
79 {
80 }
RBEvaluation & _rb_eval
The RBEvaluation object that will be written to disk.

◆ RBEvaluationSerialization() [2/3]

libMesh::RBDataSerialization::RBEvaluationSerialization::RBEvaluationSerialization ( RBEvaluationSerialization &&  )
default

Special functions.

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

◆ RBEvaluationSerialization() [3/3]

libMesh::RBDataSerialization::RBEvaluationSerialization::RBEvaluationSerialization ( const RBEvaluationSerialization )
default

◆ ~RBEvaluationSerialization()

libMesh::RBDataSerialization::RBEvaluationSerialization::~RBEvaluationSerialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ write_to_file()

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

Write the Cap'n'Proto buffer to disk.

Definition at line 84 of file rb_data_serialization.C.

References _rb_eval, libMesh::RBDataSerialization::add_rb_evaluation_data_to_builder(), libMesh::ParallelObject::comm(), and TIMPI::Communicator::rank().

Referenced by main().

85 {
86  LOG_SCOPE("write_to_file()", "RBEvaluationSerialization");
87 
88  if (_rb_eval.comm().rank() == 0)
89  {
90  capnp::MallocMessageBuilder message;
91 
92 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
93  RBData::RBEvaluationReal::Builder rb_eval_builder =
94  message.initRoot<RBData::RBEvaluationReal>();
95 #else
96  RBData::RBEvaluationComplex::Builder rb_eval_builder =
97  message.initRoot<RBData::RBEvaluationComplex>();
98 #endif
99 
101 
102  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
103  libmesh_error_msg_if(!fd, "Error opening a write-only file descriptor to " + path);
104 
105  capnp::writeMessageToFd(fd, message);
106 
107  int error = close(fd);
108  libmesh_error_msg_if(error, "Error closing a write-only file descriptor to " + path);
109  }
110 }
processor_id_type rank() const
const Parallel::Communicator & comm() const
void add_rb_evaluation_data_to_builder(RBEvaluation &rb_eval, RBEvaluationBuilderNumber &rb_eval_builder)
Add data for an RBEvaluation to the builder.
RBEvaluation & _rb_eval
The RBEvaluation object that will be written to disk.

Member Data Documentation

◆ _rb_eval

RBEvaluation& libMesh::RBDataSerialization::RBEvaluationSerialization::_rb_eval
private

The RBEvaluation object that will be written to disk.

Definition at line 90 of file rb_data_serialization.h.

Referenced by write_to_file().


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