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...
 
virtual ~RBEvaluationSerialization ()
 Destructor. More...
 
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()

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

73  :
74  _rb_eval(rb_eval)
75 {
76 }

◆ ~RBEvaluationSerialization()

libMesh::RBDataSerialization::RBEvaluationSerialization::~RBEvaluationSerialization ( )
virtual

Destructor.

Definition at line 78 of file rb_data_serialization.C.

79 {
80 }

Member Function Documentation

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

83 {
84  LOG_SCOPE("write_to_file()", "RBEvaluationSerialization");
85 
86  if (_rb_eval.comm().rank() == 0)
87  {
88  capnp::MallocMessageBuilder message;
89 
90 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
91  RBData::RBEvaluationReal::Builder rb_eval_builder =
92  message.initRoot<RBData::RBEvaluationReal>();
93 #else
94  RBData::RBEvaluationComplex::Builder rb_eval_builder =
95  message.initRoot<RBData::RBEvaluationComplex>();
96 #endif
97 
99 
100  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
101  if (!fd)
102  libmesh_error_msg("Error opening a write-only file descriptor to " + path);
103 
104  capnp::writeMessageToFd(fd, message);
105 
106  int error = close(fd);
107  if (error)
108  libmesh_error_msg("Error closing a write-only file descriptor to " + path);
109  }
110 }

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

Referenced by main().

Member Data Documentation

◆ _rb_eval

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

The RBEvaluation object that will be written to disk.

Definition at line 83 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::RBEvaluationSerialization::_rb_eval
RBEvaluation & _rb_eval
The RBEvaluation object that will be written to disk.
Definition: rb_data_serialization.h:83
libMesh::RBDataSerialization::add_rb_evaluation_data_to_builder
void add_rb_evaluation_data_to_builder(RBEvaluation &rb_eval, RBEvaluationBuilderNumber &rb_eval_builder)
Add data for an RBEvaluation to the builder.
Definition: rb_data_serialization.C:328