16 namespace ofconventions {
30 template<
typename T>
inline std::string
stringify(T
const& x) {
31 std::ostringstream out;
62 ofstream& operator<<(ofstream& s, const vector<T>& v) {
66 for (
size_t i(0); i < v.size(); ++i) {
73 ofstream& operator<<(ofstream& s, const valarray<T>& v) {
77 for (
size_t i(0); i < v.size(); ++i) {
84 ofstream& operator<<(ofstream& s, const Array2D<T>& array2D) {
87 s << array2D.dim1()<<
"\n";
88 s << array2D.dim2()<<
"\n";
89 for (
size_t i(0); i < array2D.dim(); ++i) {
90 s << array2D(i)<<
"\n";
96 ofstream& operator<<(ofstream& s, const Array3D<T>& array3D) {
99 s << array3D.dim1()<<
"\n";
100 s << array3D.dim2()<<
"\n";
101 s << array3D.dim3()<<
"\n";
102 for (
size_t i(0); i < array3D.dim(); ++i) {
103 s << array3D(i)<<
"\n";
122 oAxis(
const float _m,
const float _M,
const size_t _sz);
123 oAxis(
const string _l,
const string _u,
const float _m,
const float _M,
140 string _Ql,
float _Qc,
string _tl,
string _tu,
float _tc,
string _oD);
142 string _Ql,
float _Qc,
string _tl,
string _tu,
float _tc,
string _oD);
144 string _Ql,
float _Qc,
string _tl,
string _tu,
float _tc,
string _oD);
145 Header(vector< oAxis > _xyz,
146 string _Ql,
float _Qc,
string _tl,
string _tu,
float _tc,
string _oD);
149 valarray<float> axis(
const size_t i);
150 string label(
const size_t i);
151 string units(
const size_t i);
152 float conv(
const size_t i);
154 float min(
const size_t i) {
return(xyz_axis[i].min);}
155 float max(
const size_t i) {
return(xyz_axis[i].max);}
157 string Title_label();
178 const vector< string > oTags,
181 void Export_h5(
const std::string tag, std::valarray<float> ex,
182 const size_t& step,
const int spec = -1);
184 const size_t& step,
const int spec = -1);
186 const size_t& step,
const int spec = -1);
188 H5::H5File hmake_file(
string ofilename);
189 void hclose_file(H5::H5File &file);
190 void hinit_attr(H5::H5File &hfilehandle,
const std::string tag,
191 size_t step,
float xmax,
float xmin);
192 void hinit_attr2(H5::H5File &hfilehandle,
const std::string tag,
193 size_t step,
float xmax[],
float xmin[]);
194 void haxis(H5::Group &hgrouphandle,
string axismainname,
float axisrange[2],
195 string axislongname,
string axisname,
196 string axistype,
string axisunits);
197 void hfile_add_attr(H5::H5File &hfilehandle,
string attrname,
int attrdata);
198 void hfile_add_attr2(H5::H5File &hfilehandle,
string attrname,
int attrdata[2]);
199 void hfile_add_attr(H5::H5File &hfilehandle,
string attrname,
float attrdata);
200 void hfile_add_attr2(H5::H5File &hfilehandle,
string attrname,
float attrdata[2]);
201 void hfile_add_attr(H5::H5File &hfilehandle,
string attrname,
string attrdata);
202 void hfile_add_attr_todataset(H5::DataSet &hdatasethandle,
string attrname,
string attrdata);
206 map< string, Header >
Hdr;
207 string oH5Fextension(
size_t step,
int species = -1);
218 void Read(
const int rank,
const size_t re_step,
State1D& Y);
219 void Write(
const int rank,
const size_t re_step,
State1D& Y);
223 string rFextension(
const int rank,
const size_t rstep);
244 PLegendre1D(
size_t Nl,
size_t Nm,
size_t Np,
float pmin,
float pmax,
250 size_t dim()
const {
return (*plegendre).size(); }
269 PLegendre2D(
size_t Nl,
size_t Nm,
size_t Np,
float pmin,
float pmax,
270 size_t Npx ,
size_t Npy);
275 size_t dim()
const {
return (*plegendre).size(); }
300 valarray<float> operator()(
DistFunc1D& df,
size_t x0,
size_t s) ;
303 size_t Species()
const {
return p1x1.size(); }
307 float Pmin(
size_t s)
const {
return pmin[s]; }
308 float Pmax(
size_t s)
const {
return pmax[s]; }
311 valarray<float>
p1_x1(
size_t s)
const {
return p1x1[s]; }
318 vector< valarray<float> >
p1x1;
340 size_t Species()
const {
return p2p1x1.size(); }
341 size_t Nl(
size_t s)
const {
return numl[s]; }
342 size_t Nm(
size_t s)
const {
return numm[s]; }
343 size_t Npx(
size_t s)
const {
return Pl[s](0).dim1(); }
344 size_t Npy(
size_t s)
const {
return Pl[s](0).dim2(); }
346 float Pmin(
size_t s)
const {
return pmin[s]; }
347 float Pmax(
size_t s)
const {
return pmax[s]; }
359 vector< PLegendre2D >
Pl;
360 vector< Array2D<float> >
pr;
386 size_t Species()
const {
return nump.size(); }
388 size_t Np(
size_t s)
const {
return nump[s]; }
389 float Pmin(
size_t s)
const {
return pmin[s]; }
390 float Pmax(
size_t s)
const {
return pmax[s]; }
411 const vector< string > _oTags,
413 : expo( _grid.axis, _oTags, homedir),
Array2D< float > dcell(size_t s) const
float Pmin(size_t s) const
Output_Preprocessor_1D(const Grid_Info &_grid, const vector< string > _oTags, string homedir="")
float Pmax(size_t s) const
int Makefolder(string _name)
float Pmax(size_t s) const
std::string stringify(T const &x)
float Pmin(size_t s) const
const string ofile_extension
Array2D< float > operator()(size_t i) const
const int ofile_precision
vector< valarray< float > > p1x1
Array2D< float > & operator()(size_t i)
vector< Array2D< float > > distancetothatcell
float Pmax(size_t s) const
Array2D< float > & operator()(size_t i)
size_t Np(size_t s) const
vector< Array2D< float > > * plegendre
vector< Array2D< float > > pr
vector< Array2D< float > > * plegendre
size_t Npx(size_t s) const
Array2D< float > operator()(size_t i) const
PLegendre2D PL(size_t s) const
vector< Array2D< float > > p2p1x1
Array2D< size_t > npcell(size_t s) const
size_t Npy(size_t s) const
Array2D< float > prad(size_t s) const
float Pmin(size_t s) const
Array2D< float > p2p1_x1(size_t s) const
const string h5file_extension
vector< Array2D< size_t > > nextpcell
size_t Nm(size_t s) const
size_t Nl(size_t s) const
The 1D distribution function is the container for all SHarmonic1D per species.
valarray< float > p1_x1(size_t s) const
const string rfile_extension
map< string, Header > Hdr