introducing aquiferActive() to reduce of the overhead

for the models that does not include a aquifer model.
This commit is contained in:
Kai Bao 2018-05-31 09:51:54 +02:00
parent 420fbe21d4
commit 477740ca38
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