libMesh
Loading...
Searching...
No Matches
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.
 
 RBEIMEvaluationSerialization (RBEIMEvaluationSerialization &&)=default
 Special functions.
 
 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.
 

Private Attributes

RBEIMEvaluation_rb_eim_eval
 The RBEvaluation object that will be written to disk.
 

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.

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}
processor_id_type rank() const
const Parallel::Communicator & comm() const
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.

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

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

Referenced by write_to_file().


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