libMesh
Functions
output.h File Reference

Go to the source code of this file.

Functions

void start_output (unsigned int timesteps, std::string filename, std::string varname)
 

Function Documentation

◆ start_output()

void start_output ( unsigned int  timesteps,
std::string  filename,
std::string  varname 
)

Definition at line 14 of file output.C.

References libMesh::err, and libMesh::out.

Referenced by write_output_headers().

17 {
18  // Truncate then append if we're doing a restart
19  if (timesteps)
20  {
21  std::ifstream infile (filename.c_str());
22  char buf[1025];
23  libmesh_error_msg_if(!infile.is_open(), "Error opening file " << filename);
24 
25  // Count off the lines we want to save, including
26  // the original header
27  for (unsigned int i=0; i != timesteps+1; ++i)
28  infile.getline(buf, 1024);
29  libmesh_error_msg_if(!infile.good(), "Error reading line from file " << filename);
30  unsigned int length = cast_int<unsigned int>(infile.tellg());
31  infile.close();
32 
33  // Then throw away the rest
34  int err = truncate(filename.c_str(), length);
35  libmesh_error_msg_if(err != 0, "Error truncating file " << filename);
36  }
37  // Write new headers if we're starting a new simulation
38  else
39  {
40  std::ofstream outfile (filename.c_str(), std::ios_base::out);
41  outfile << varname << " = [" << std::endl;
42  }
43 }
OStreamProxy err
OStreamProxy out