6 std::vector< std::vector<int> > rFieldMappings, std::vector<index_order> rIndexOrder,
7 std::vector<adj_map> conv_factor, std::vector<adj_map> norm_val)
8 : infile(infile), outfile(outfile) {
27 infile.seekg(0, std::ios::beg);
41 : infile(d.infile), outfile(d.outfile) {
54 return string(
"Datafile");
66 outfile <<
"ERROR | File \"" << this->
filename <<
"\": " << err_ps << std::endl;
67 cout <<
"ERROR | File \"" << this->
filename <<
"\": " << err_ps << std::endl;
72 outfile <<
"status | File \"" << this->
filename <<
"\": " << st_ps << std::endl;
81 string st_out = string(
"Mapping VAR ");
168 for(
int record_num = 0; record_num <
mIndexOrder.size(); record_num++){
169 if(
mIndexOrder[record_num].partition_number == partition){
187 std::vector< std::vector<int> > rFieldMappings, std::vector<index_order> rIndexOrder,
188 std::vector<adj_map> conv_factor, std::vector<adj_map> norm_val)
189 :
datafile(infile, outfile, loud, filename, dim, rFieldMappings, rIndexOrder, conv_factor, norm_val){
195 return string(
"Tecplot File");
202 while(!
infile.eof() && tmp.compare(
string(
"ZONE")) != 0)
211 infile.seekg(0, std::ios::beg);
219 while(temp.compare(
string(
"ZONE")) != 0){
227 if(title_parse.size() == 1){
228 this->
title = title_parse[0];
241 infile.seekg(0, std::ios::beg);
246 string st_ps(
"Zone ");
247 st_ps = st_ps +
itoa(zone) +
" | " + zs_out;
253 string err_ps(
"Zone ");
254 err_ps = err_ps +
itoa(zone) +
" | " + zs_err;
275 infile.seekg(0, std::ios::beg);
291 string err_ps(
"No Zones Found");
300 infile.seekg(0, std::ios::beg);
305 for(
int i=0;
i<zone_count;
i++){
320 string err_ps(
"Invalid Zone");
326 for(
int i=0;
i<zone_count;
i++){
348 if(ztype.size() == 1){
354 if(ztype[0].
compare(
string(
"Ordered")) == 0){
357 string zone_st(
"Ordered Zone Detected");
361 else if(ztype[0].
compare(
string(
"FEQuadrilateral")) == 0){
364 string zone_st(
"FEQuadrilateral Zone Detected");
377 infile.seekg(0, std::ios::beg);
380 for(
int i=0;
i<=zone;
i++){
387 string *header =
new string;
392 while( (temp.find(
"DT=") == string::npos || temp.find(
"\"") != string::npos) && !
infile.eof()){
416 string *ret =
new string;
420 infile.seekg(0, std::ios::beg);
427 for(
int i=0;
i<=zone;
i++){
438 while( (curr_line.find(
"DT=") == string::npos || curr_line.find(
"\"") != string::npos)
441 infile.getline(line, 511);
446 infile.getline(line, 511);
450 while( (curr_line.find(
"ZONE") == string::npos) && !
infile.eof() ){
454 infile.getline(line, 511);
460 infile.seekg(0, std::ios::beg);
virtual string get_mod_name()
Get the name of the class (tecplot_data)
datafile(ifstream &infile, ofstream &outfile, bool loud, string filename, int dim, std::vector< std::vector< int > > rFieldMappings, std::vector< index_order > rIndexOrder, std::vector< adj_map > conv_factor, std::vector< adj_map > norm_val)
Construct data file object using specified information.
std::vector< string > var_names
pnt get_point(int n)
Get the nth point of the file.
string * get_zone_header(int zone)
Read the zone header.
int get_num_points()
Get the number of points in the file.
string * get_zone_nodes(int zone)
Retrieve zone point data from the zone body.
Base class for file parsing.
virtual void parse()
Parse the data file.
void zone_error_out(int zone, string zs_err)
Log an error message with appended zone information so the error can be located.
static const int BUFFER_SIZE
boolean empty(T_VertexSet s)
int get_num_dep_vars()
Get number of dependent variables.
Used to store index order information.
void status_out(string st_ps)
Log the string specified as a status event.
string get_title()
Get file title if specified in file header.
std::vector< string > readCommaExpression(string rStack, string rNeedle)
int get_num_vars()
Get the number of variables in the file.
Point object that represents a single point.
virtual void parse()
Parse the tecplot file.
string itoa(int n)
Convert an int to a string.
int count_zones()
Count the number of zones in the tecplot file, starting from the current location of the file stream...
void read_header()
Read the tecplot header from the file and retrieve the title, variable names, and number of variables...
std::vector< std::vector< int > > mFieldMappings
points * get_points(int partition)
Get a partitions' points.
virtual void parse_layout()
int get_num_partitions()
Get number of partition in the file.
std::vector< adj_map > norm_val
std::vector< int > get_layout()
tpzone * zone_detect(int zone)
Read the header information for the specified zone, then create a new zone object based on the type o...
std::vector< index_order > mIndexOrder
virtual ~datafile()
Free used data, delete the object.
tecplot_data(ifstream &infile, ofstream &outfile, bool loud, string filename, int dim, std::vector< std::vector< int > > rFieldMappings, std::vector< index_order > rIndexOrder, std::vector< adj_map > conv_factor, std::vector< adj_map > norm_val)
Constructor that initializes values.
virtual string get_mod_name()
Get class name.
void zone_status_out(int zone, string zs_out)
Log a status message with appended zone information.
void seek_to_zone()
Seek to the next zone in the file.
std::vector< string > readQuoteExpression(string rStack, string rNeedle)
Read expressions of the form x = "test" "100" "another test".
void LogFieldMappings()
Log the field mapping data from the command line and stored in mFieldMappings.
index_order get_index_order(int partition)
CGAL_KERNEL_INLINE Comparison_result compare(const NT &n1, const NT &n2)
int partition_layout(int partition, int n)
Get the size of n dimension of the specified partition.
virtual ~tecplot_data()
Destructor.
std::vector< adj_map > conv_factor
void error_out(string err_ps)
Log the string specified as an error event.