@@ -73,9 +73,13 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, string name_CV1_in,
7373 trap_map_x_y.resize (n_table_levels);
7474 su2double startTime = SU2_MPI::Wtime ();
7575 unsigned short barwidth = 65 ;
76+ bool display_map_info = (n_table_levels < 2 );
77+ double tmap_memory_footprint = 0 ;
7678 for (auto i_level = 0ul ; i_level < n_table_levels; i_level++) {
77- trap_map_x_y[i_level] = CTrapezoidalMap (GetDataP (name_CV1, i_level), GetDataP (name_CV2, i_level),
78- table_data[i_level].cols (), edges[i_level], edge_to_triangle[i_level]);
79+ trap_map_x_y[i_level] =
80+ CTrapezoidalMap (GetDataP (name_CV1, i_level), GetDataP (name_CV2, i_level), table_data[i_level].cols (),
81+ edges[i_level], edge_to_triangle[i_level], display_map_info);
82+ tmap_memory_footprint += trap_map_x_y[i_level].GetMemoryFootprint ();
7983 /* Display a progress bar to monitor table generation process */
8084 if (rank == MASTER_NODE) {
8185 su2double progress = su2double (i_level) / n_table_levels;
@@ -100,6 +104,8 @@ CLookUpTable::CLookUpTable(const string& var_file_name_lut, string name_CV1_in,
100104 default :
101105 break ;
102106 }
107+ cout << " Trapezoidal map memory footprint: " << tmap_memory_footprint << " MB\n " ;
108+ cout << " Table data memory footprint: " << memory_footprint_data << " MB\n " << endl;
103109 }
104110
105111 ComputeInterpCoeffs ();
@@ -133,7 +139,9 @@ void CLookUpTable::LoadTableRaw(const string& var_file_name_lut) {
133139 table_data[i_level] = file_reader.GetTableData (i_level);
134140 triangles[i_level] = file_reader.GetTriangles (i_level);
135141 hull[i_level] = file_reader.GetHull (i_level);
142+ memory_footprint_data += n_points[i_level] * sizeof (su2double);
136143 }
144+ memory_footprint_data /= 1e6 ;
137145
138146 n_variables = file_reader.GetNVariables ();
139147 version_lut = file_reader.GetVersionLUT ();
@@ -164,7 +172,7 @@ void CLookUpTable::FindTableLimits(const string& name_cv1, const string& name_cv
164172 }
165173
166174 if (table_dim == 3 ) {
167- limits_table_z = minmax_element (z_values_levels.data (), z_values_levels.data () + z_values_levels.cols ());
175+ limits_table_z = minmax_element (z_values_levels.data (), z_values_levels.data () + z_values_levels.size ());
168176 }
169177}
170178
@@ -451,7 +459,7 @@ unsigned long CLookUpTable::LookUp_XYZ(const std::string& val_name_var, su2doubl
451459 return 1 ;
452460 }
453461}
454- unsigned long CLookUpTable::LookUp_XYZ (const std::vector<std::string>& val_names_var, std::vector<su2double* >& val_vars,
462+ unsigned long CLookUpTable::LookUp_XYZ (const std::vector<std::string>& val_names_var, std::vector<su2double>& val_vars,
455463 su2double val_CV1, su2double val_CV2, su2double val_CV3) {
456464 /* --- Perform quasi-3D interpolation for a vector of variables with names val_names_var
457465 on a query point with coordinates val_CV1, val_CV2, and val_CV3 ---*/
@@ -509,7 +517,7 @@ void CLookUpTable::Linear_Interpolation(const su2double val_CV3, const unsigned
509517
510518void CLookUpTable::Linear_Interpolation (const su2double val_CV3, const unsigned long lower_level,
511519 const unsigned long upper_level, std::vector<su2double>& lower_values,
512- std::vector<su2double>& upper_values, std::vector<su2double* >& var_vals) const {
520+ std::vector<su2double>& upper_values, std::vector<su2double>& var_vals) const {
513521 /* Perform linear interpolation along the z-direction of the table for multiple variables */
514522
515523 /* Retrieve constant z-values of inclusion levels */
@@ -522,7 +530,7 @@ void CLookUpTable::Linear_Interpolation(const su2double val_CV3, const unsigned
522530
523531 /* Perform linear interpolation */
524532 for (size_t iVar = 0 ; iVar < var_vals.size (); iVar++) {
525- * var_vals[iVar] = lower_values[iVar] * factor_lower + upper_values[iVar] * factor_upper;
533+ var_vals[iVar] = lower_values[iVar] * factor_lower + upper_values[iVar] * factor_upper;
526534 }
527535}
528536
0 commit comments