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...
 
virtual ~TransientRBEvaluationSerialization ()
 Destructor. More...
 
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 91 of file rb_data_serialization.h.

Constructor & Destructor Documentation

◆ TransientRBEvaluationSerialization()

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 }

◆ ~TransientRBEvaluationSerialization()

libMesh::RBDataSerialization::TransientRBEvaluationSerialization::~TransientRBEvaluationSerialization ( )
virtual

Destructor.

Definition at line 123 of file rb_data_serialization.C.

124 {
125 }

Member Function Documentation

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

128 {
129  LOG_SCOPE("write_to_file()", "TransientRBEvaluationSerialization");
130 
131  if (_trans_rb_eval.comm().rank() == 0)
132  {
133  capnp::MallocMessageBuilder message;
134 
135 #ifndef LIBMESH_USE_COMPLEX_NUMBERS
136  RBData::TransientRBEvaluationReal::Builder trans_rb_eval_builder =
137  message.initRoot<RBData::TransientRBEvaluationReal>();
138  RBData::RBEvaluationReal::Builder rb_eval_builder =
139  trans_rb_eval_builder.initRbEvaluation();
140 #else
141  RBData::TransientRBEvaluationComplex::Builder trans_rb_eval_builder =
142  message.initRoot<RBData::TransientRBEvaluationComplex>();
143  RBData::RBEvaluationComplex::Builder rb_eval_builder =
144  trans_rb_eval_builder.initRbEvaluation();
145 #endif
146 
148  rb_eval_builder,
149  trans_rb_eval_builder);
150 
151  int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0664);
152  if (!fd)
153  libmesh_error_msg("Error opening a write-only file descriptor to " + path);
154 
155  capnp::writeMessageToFd(fd, message);
156 
157  int error = close(fd);
158  if (error)
159  libmesh_error_msg("Error closing a write-only file descriptor to " + path);
160  }
161 }

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

Referenced by main().

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 116 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::TransientRBEvaluationSerialization::_trans_rb_eval
TransientRBEvaluation & _trans_rb_eval
The RBEvaluation object that will be written to disk.
Definition: rb_data_serialization.h:116
libMesh::RBDataSerialization::add_transient_rb_evaluation_data_to_builder
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.
Definition: rb_data_serialization.C:474