begining simulator code for numerical aquifer

most of the functionality is to collect data for summary output.
This commit is contained in:
Kai Bao
2020-11-13 15:08:45 +01:00
parent ef67d9a9e7
commit 6008aa8339
4 changed files with 104 additions and 0 deletions

View File

@@ -18,6 +18,9 @@
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#include <opm/grid/utility/cartesianToCompressed.hpp>
#include "BlackoilAquiferModel.hpp"
namespace Opm
{
@@ -179,6 +182,12 @@ BlackoilAquiferModel<TypeTag>::init()
aquifers_Fetkovich.emplace_back(connections[aq.aquiferID],
this->simulator_, aq);
}
if (aquifer.hasNumericalAquifer()) {
for (const auto& elem : aquifer.numericalAquifers().aquifers()) {
this->aquifers_numerical.emplace_back(elem.second);
}
}
}
template <typename TypeTag>
bool
@@ -199,6 +208,13 @@ BlackoilAquiferModel<TypeTag>::aquiferFetkovichActive() const
return !aquifers_Fetkovich.empty();
}
template<typename TypeTag>
bool
BlackoilAquiferModel<TypeTag>::aquiferNumericalActive() const
{
return !(this->aquifers_numerical.empty());
}
template<typename TypeTag>
Opm::data::Aquifers BlackoilAquiferModel<TypeTag>::aquiferData() const {
Opm::data::Aquifers data;
@@ -215,6 +231,14 @@ Opm::data::Aquifers BlackoilAquiferModel<TypeTag>::aquiferData() const {
data[aqu_data.aquiferID] = aqu_data;
}
}
if (this->aquiferNumericalActive()) {
for (const auto& aqu : this->aquifers_numerical) {
Opm::data::AquiferData aqu_data = aqu.aquiferData();
data[aqu_data.aquiferID] = aqu_data;
}
}
return data;
}
} // namespace Opm