Write the Cap'n'Proto buffer to disk.
179 {
180 LOG_SCOPE("write_to_file()", "RBEIMEvaluationSerialization");
181
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.