mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
changed: move the EnableIntensiveQuantitiesCache parameter to Opm::Parameters
This commit is contained in:
@@ -221,13 +221,6 @@ struct EnableStorageCache<TypeTag, TTag::FvBaseDiscretization> { static constexp
|
||||
template<class TypeTag>
|
||||
struct EnableConstraints<TypeTag, TTag::FvBaseDiscretization> { static constexpr bool value = false; };
|
||||
|
||||
// by default, disable the intensive quantity cache. If the intensive quantities are
|
||||
// relatively cheap to calculate, the cache basically does not yield any performance
|
||||
// impact because of the intensive quantity cache will cause additional pressure on the
|
||||
// CPU caches...
|
||||
template<class TypeTag>
|
||||
struct EnableIntensiveQuantityCache<TypeTag, TTag::FvBaseDiscretization> { static constexpr bool value = false; };
|
||||
|
||||
// do not use thermodynamic hints by default. If you enable this, make sure to also
|
||||
// enable the intensive quantity cache above to avoid getting an exception...
|
||||
template<class TypeTag>
|
||||
@@ -346,6 +339,14 @@ template<class TypeTag>
|
||||
struct ContinueOnConvergenceError<TypeTag, Properties::TTag::FvBaseDiscretization>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
//! by default, disable the intensive quantity cache. If the intensive quantities are
|
||||
//! relatively cheap to calculate, the cache basically does not yield any performance
|
||||
//! impact because of the intensive quantity cache will cause additional pressure on the
|
||||
//! CPU caches...
|
||||
template<class TypeTag>
|
||||
struct EnableIntensiveQuantityCache<TypeTag, Properties::TTag::FvBaseDiscretization>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
namespace Opm {
|
||||
@@ -465,7 +466,7 @@ public:
|
||||
, localLinearizer_(ThreadManager::maxThreads())
|
||||
, linearizer_(new Linearizer())
|
||||
, enableGridAdaptation_(Parameters::get<TypeTag, Parameters::EnableGridAdaptation>() )
|
||||
, enableIntensiveQuantityCache_(Parameters::get<TypeTag, Properties::EnableIntensiveQuantityCache>())
|
||||
, enableIntensiveQuantityCache_(Parameters::get<TypeTag, Parameters::EnableIntensiveQuantityCache>())
|
||||
, enableStorageCache_(Parameters::get<TypeTag, Properties::EnableStorageCache>())
|
||||
, enableThermodynamicHints_(Parameters::get<TypeTag, Properties::EnableThermodynamicHints>())
|
||||
{
|
||||
@@ -527,7 +528,7 @@ public:
|
||||
("Global switch for turning on writing VTK files");
|
||||
Parameters::registerParam<TypeTag, Properties::EnableThermodynamicHints>
|
||||
("Enable thermodynamic hints");
|
||||
Parameters::registerParam<TypeTag, Properties::EnableIntensiveQuantityCache>
|
||||
Parameters::registerParam<TypeTag, Parameters::EnableIntensiveQuantityCache>
|
||||
("Turn on caching of intensive quantities");
|
||||
Parameters::registerParam<TypeTag, Properties::EnableStorageCache>
|
||||
("Store previous storage terms and avoid re-calculating them.");
|
||||
|
||||
@@ -104,6 +104,18 @@ struct MaxTimeStepDivisions { using type = Properties::UndefinedProperty; };
|
||||
template<class TypeTag, class MyTypeTag>
|
||||
struct ContinueOnConvergenceError { using type = Properties::UndefinedProperty; };
|
||||
|
||||
/*!
|
||||
* \brief Specify whether all intensive quantities for the grid should be
|
||||
* cached in the discretization.
|
||||
*
|
||||
* This potentially reduces the CPU time, but comes at the cost of
|
||||
* higher memory consumption. In turn, the higher memory requirements
|
||||
* may cause the simulation to exhibit worse cache coherence behavior
|
||||
* which eats some of the computational benefits again.
|
||||
*/
|
||||
template<class TypeTag, class MyTypeTag>
|
||||
struct EnableIntensiveQuantityCache { using type = Properties::UndefinedProperty; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
#endif
|
||||
|
||||
@@ -215,18 +215,6 @@ struct VtkOutputFormat { using type = UndefinedProperty; };
|
||||
template<class TypeTag, class MyTypeTag>
|
||||
struct EnableConstraints { using type = UndefinedProperty; };
|
||||
|
||||
/*!
|
||||
* \brief Specify whether all intensive quantities for the grid should be
|
||||
* cached in the discretization.
|
||||
*
|
||||
* This potentially reduces the CPU time, but comes at the cost of
|
||||
* higher memory consumption. In turn, the higher memory requirements
|
||||
* may cause the simulation to exhibit worse cache coherence behavior
|
||||
* which eats some of the computational benefits again.
|
||||
*/
|
||||
template<class TypeTag, class MyTypeTag>
|
||||
struct EnableIntensiveQuantityCache { using type = UndefinedProperty; };
|
||||
|
||||
/*!
|
||||
* \brief Specify whether the storage terms for previous solutions should be cached.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user