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

This class serializes a TransientRBEvaluation object using the Cap'n Proto library. More...

#include <rb_data_serialization.h>

Public Member Functions

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

Private Attributes

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

Detailed Description

This class serializes a TransientRBEvaluation object using the Cap'n Proto library.

Definition at line 99 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ TransientRBEvaluationSerialization() [1/3]

libMesh::RBDataSerialization::TransientRBEvaluationSerialization::TransientRBEvaluationSerialization ( TransientRBEvaluation rb_eval)

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

Definition at line 118 of file rb_data_serialization.C.

118  :
119  _trans_rb_eval(trans_rb_eval)
120 {
121 }
TransientRBEvaluation & _trans_rb_eval
The RBEvaluation object that will be written to disk.

◆ TransientRBEvaluationSerialization() [2/3]

libMesh::RBDataSerialization::TransientRBEvaluationSerialization::TransientRBEvaluationSerialization ( TransientRBEvaluationSerialization &&  )
default

Special functions.

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

◆ TransientRBEvaluationSerialization() [3/3]

libMesh::RBDataSerialization::TransientRBEvaluationSerialization::TransientRBEvaluationSerialization ( const TransientRBEvaluationSerialization )
default

◆ ~TransientRBEvaluationSerialization()

libMesh::RBDataSerialization::TransientRBEvaluationSerialization::~TransientRBEvaluationSerialization ( )
virtualdefault

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ write_to_file()

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

Write the Cap'n'Proto buffer to disk.

Definition at line 125 of file rb_data_serialization.C.

References _trans_rb_eval, libMesh::RBDataSerialization::add_transient_rb_evaluation_data_to_builder(), libMesh::ParallelObject::comm(), and TIMPI::Communicator::rank().

Referenced by main().

126 {
127  LOG_SCOPE("write_to_file()", "TransientRBEvaluationSerialization");
128 
129  if (_trans_rb_eval.comm().rank() == 0)
130  {
131  capnp::MallocMessageBuilder message;
132 
133 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
134  RBData::TransientRBEvaluationReal::Builder trans_rb_eval_builder =
135  message.initRoot<RBData::TransientRBEvaluationReal>();
136  RBData::RBEvaluationReal::Builder rb_eval_builder =
137  trans_rb_eval_builder.initRbEvaluation();
138 #else
139  RBData::TransientRBEvaluationComplex::Builder trans_rb_eval_builder =
140  message.initRoot<RBData::TransientRBEvaluationComplex>();
141  RBData::RBEvaluationComplex::Builder rb_eval_builder =
142  trans_rb_eval_builder.initRbEvaluation();
143 #endif
144 
146  rb_eval_builder,
147  trans_rb_eval_builder);
148 
149  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
150  libmesh_error_msg_if(!fd, "Error opening a write-only file descriptor to " + path);
151 
152  capnp::writeMessageToFd(fd, message);
153 
154  int error = close(fd);
155  libmesh_error_msg_if(error, "Error closing a write-only file descriptor to " + path);
156  }
157 }
void add_transient_rb_evaluation_data_to_builder(TransientRBEvaluation &trans_rb_eval, RBEvaluationBuilderNumber &rb_eval_builder, TransRBEvaluationBuilderNumber &trans_rb_eval_builder)
Add data for a TransientRBEvaluation to the builder.
processor_id_type rank() const
const Parallel::Communicator & comm() const
TransientRBEvaluation & _trans_rb_eval
The RBEvaluation object that will be written to disk.

Member Data Documentation

◆ _trans_rb_eval

TransientRBEvaluation& libMesh::RBDataSerialization::TransientRBEvaluationSerialization::_trans_rb_eval
private

The RBEvaluation object that will be written to disk.

Definition at line 131 of file rb_data_serialization.h.

Referenced by write_to_file().


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