Merge pull request #13 from GitPaean/kel85uk-task/#3/BlackoilAquiferModel

Introduces aquiferActive() to reduce overhead during matrix assembly without aquifers.
This commit is contained in:
Kelvin Loh 2018-06-04 15:38:13 +02:00 committed by kel85uk
commit 1c6dfbf295
2 changed files with 25 additions and 3 deletions

View File

@ -71,10 +71,12 @@ namespace Opm {
// at the beginning of each time step (Not report step)
void prepareTimeStep(const SimulatorTimerInterface& timer);
bool aquiferActive() const;
};
} // namespace Opm
#include "BlackoilAquiferModel_impl.hpp"
#endif
#endif

View File

@ -15,6 +15,10 @@ namespace Opm {
void
BlackoilAquiferModel<TypeTag>:: timeStepSucceeded(const SimulatorTimerInterface& timer)
{
if ( !aquiferActive() ) {
return;
}
for (auto aquifer = aquifers_.begin(); aquifer != aquifers_.end(); ++aquifer)
{
aquifer->afterTimeStep(timer);
@ -27,6 +31,10 @@ namespace Opm {
assemble( const SimulatorTimerInterface& timer,
const int iterationIdx )
{
if ( !aquiferActive() ) {
return;
}
// We need to update the reservoir pressures connected to the aquifer
updateConnectionIntensiveQuantities();
@ -85,8 +93,13 @@ namespace Opm {
void
BlackoilAquiferModel<TypeTag>:: init()
{
updateConnectionIntensiveQuantities();
const auto& deck = ebosSimulator_.vanguard().deck();
if ( !deck.hasKeyword("AQUCT") ) {
return ;
}
updateConnectionIntensiveQuantities();
const auto& eclState = ebosSimulator_.vanguard().eclState();
// Get all the carter tracy aquifer properties data and put it in aquifers vector
@ -107,4 +120,11 @@ namespace Opm {
}
}
} // namespace Opm
template<typename TypeTag>
bool
BlackoilAquiferModel<TypeTag>:: aquiferActive() const
{
return !aquifers_.empty();
}
} // namespace Opm