33 template<
class Ch,
class Tr>
36 std::stringstream _fileName;
38 std::string _fullname;
41 FileName( std::string baseName, std::string suffix=
".dat" )
42 : _fileName(baseName, std::ios_base::app | std::ios_base::out), _suffix(suffix)
46 std::string
addParameter( std::string quantity, T value,
int digits=6,
int precision=2 ){
47 _fileName <<
"_" << quantity;
48 if constexpr(std::is_same_v<T,double>){
49 _fileName << std::setw(digits) << std::setfill(
'0') << std::setprecision(precision) << value;
51 _fileName << std::setw(digits) << std::setfill(
'0') << value;
53 return _fileName.str();
57 return _fileName.str()+_suffix;
62 return _fullname.c_str();
67template<
class Ch,
class Tr>
70 return os << fileName.
str();
77template <
typename ARRAYTYPE>
79 std::string fullFileName, std::string headLine,
80 ARRAYTYPE& dataVector,
int iE,
int iE0 = 0 );
82template <
typename ARRAYTYPE>
84 ARRAYTYPE& dataVector,
int iE,
int iE0 = 0 );
86template <
typename ARRAYTYPE>
87void writeScalarData( std::string fullFileName, std::vector<std::string>& headLineVector,
88 ARRAYTYPE& dataVector,
int iT,
int iTinit = 0 );
92void writeArrayData( std::string fullFileName, std::string headLine,
93 std::vector<std::string>& dataVector );
95template <
typename ARRAYTYPE>
96void writeArrayData( std::string fullFileName, std::string headLine,
97 std::vector<ARRAYTYPE>& dataVector );
99template <
typename ARRAYTYPE>
100void writeArrayData( std::string fullFileName, std::vector<std::string>& headLineVector,
101 std::vector<ARRAYTYPE>& dataVector );
friend auto & operator<<(std::basic_ostream< Ch, Tr > &, FileName &)
Befriend overloaded << operator.
FileName(std::string baseName, std::string suffix=".dat")
Constructor.
std::string addParameter(std::string quantity, T value, int digits=6, int precision=2)
Add parameters.
Top level namespace for all of OpenLB.
void writeArrayData(std::string fullFileName, std::string headLine, std::vector< std::string > &dataVector)
Write array data.
void writeScalarData(std::ofstream &dataWriterOpened, std::string fullFileName, std::string headLine, ARRAYTYPE &dataVector, int iE, int iE0=0)
Write functions for scalar and array data.
std::ostream & operator<<(std::ostream &os, const ScalarVector< T, D, IMPL > &o)
Print vector entries to ostream in a human-readable fashion.