OGS
XdmfWriter.cpp
Go to the documentation of this file.
1 #include "XdmfWriter.h"
2 
3 #include <fstream>
4 
5 #include "BaseLib/Logging.h"
6 #include "BaseLib/RunTime.h"
7 #include "writeXdmf.h"
8 
9 namespace MeshLib::IO
10 {
11 XdmfWriter::XdmfWriter(std::string xdmf_filename,
12  std::function<std::string(std::vector<double>)>
13  xdmf_writer_fn)
14  : filename(std::move(xdmf_filename)), xdmf_writer(xdmf_writer_fn)
15 {
16 }
17 
19 {
20  BaseLib::RunTime time_output;
21  time_output.start();
22  std::ofstream fout;
23  fout.open(filename);
24  fout << xdmf_writer(times);
25 
26  INFO("[time] Output of XDMF to {:s} took {:g} s.",
27  filename,
28  time_output.elapsed());
29 }
30 
31 void XdmfWriter::addTimeStep(double const& time_step)
32 {
33  times.push_back(time_step);
34 }
35 
36 } // namespace MeshLib::IO
void INFO(char const *fmt, Args const &... args)
Definition: Logging.h:32
Definition of the RunTime class.
Collects and holds all metadata for writing XDMF file.
Count the running time.
Definition: RunTime.h:29
double elapsed() const
Get the elapsed time in seconds.
Definition: RunTime.h:42
void start()
Start the timer.
Definition: RunTime.h:32
std::function< std::string(std::vector< double >)> xdmf_writer
Definition: XdmfWriter.h:47
std::vector< double > times
Definition: XdmfWriter.h:46
XdmfWriter(std::string xdmf_filename, std::function< std::string(std::vector< double >)> xdmf_writer_fn)
Writes xdmf string into file on class destruction.
Definition: XdmfWriter.cpp:11
void addTimeStep(double const &time_step)
Adds data for lazy (xdmf) writing algorithm.
Definition: XdmfWriter.cpp:31
std::string filename
Definition: XdmfWriter.h:45
write_xdmf generates a function based on spatial mesh data. The generated function finally generates ...