diff --git a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C index ed009f8f33..6c8fe19f82 100644 --- a/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C +++ b/src/lagrangian/intermediate/submodels/IO/DataEntry/Table/Table.C @@ -94,46 +94,56 @@ Type Foam::Table::integrate(const scalar x1, const scalar x2) const Type sum = pTraits::zero; // Return zero if out of bounds - if ((x1 > table_[table_.size()-1].first()) || (x2 < table_[0].first())) + if ((x1 > table_.last().first()) || (x2 < table_[0].first())) { return sum; } - // Find start index + // Find next index greater than x1 label id1 = 0; while ((table_[id1].first() < x1) && (id1 < table_.size())) { id1++; } - // Find end index + // Find next index less than x2 label id2 = table_.size() - 1; while ((table_[id2].first() > x2) && (id2 >= 1)) { id2--; } - // Integrate table body - for (label i=id1; i 0) - { - sum += 0.5 - * (value(x1) + table_[id1].second()) - * (table_[id1].first() - x1); - } - if (id2 < table_.size() - 1) - { - sum += 0.5 - * (table_[id2].second() + value(x2)) - * (x2 - table_[id2].first()); + // Integrate table body + for (label i=id1; i 0) + { + sum += 0.5 + * (value(x1) + table_[id1].second()) + * (table_[id1].first() - x1); + } + if (id2 < table_.size() - 1) + { + sum += 0.5 + * (table_[id2].second() + value(x2)) + * (x2 - table_[id2].first()); + } } return sum;