Skip to content

Commit df7cef8

Browse files
committed
Fix bug in file pressure iolet
1 parent f3e9614 commit df7cef8

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

Code/lb/iolets/InOutLetFile.cc

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,18 @@ namespace hemelb::lb
4545
log::Logger::Log<log::Trace, log::OnePerCore>("Time: %f s. Value: %f mmHg.", t_s, p_mmHg);
4646
auto t_lat = unitConverter->ConvertTimeToLatticeUnits(t_s);
4747
auto rho_lat = unitConverter->ConvertPressureToLatticeUnits(p_mmHg) / Cs2;
48-
auto it = std::lower_bound(file_data_lat.begin(), file_data_lat.end(), DataPair{t_lat, rho_lat}, less_time);
49-
if (it->first == t_lat) {
50-
*it = {t_lat, rho_lat};
48+
if (file_data_lat.empty()) {
49+
file_data_lat.emplace_back(t_lat, rho_lat);
5150
} else {
52-
file_data_lat.insert(it, std::make_pair(t_lat, rho_lat));
51+
auto it = std::lower_bound(file_data_lat.begin(), file_data_lat.end(), DataPair{t_lat, rho_lat},
52+
less_time);
53+
if (it == file_data_lat.end()) {
54+
file_data_lat.emplace_back(t_lat, rho_lat);
55+
} else if (it->first == t_lat) {
56+
*it = {t_lat, rho_lat};
57+
} else {
58+
file_data_lat.insert(it, std::make_pair(t_lat, rho_lat));
59+
}
5360
}
5461
}
5562
datafile.close();
@@ -58,7 +65,7 @@ namespace hemelb::lb
5865
return l.second < r.second;
5966
};
6067
densityMin = std::min_element(file_data_lat.begin(), file_data_lat.end(), less_density)->second;
61-
densityMax = std::min_element(file_data_lat.begin(), file_data_lat.end(), less_density)->second;
68+
densityMax = std::max_element(file_data_lat.begin(), file_data_lat.end(), less_density)->second;
6269

6370
// Check if last point's value matches the first
6471
if (file_data_lat.back().second != file_data_lat.front().second)

0 commit comments

Comments
 (0)