mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
move NewtonWriteConvergence to TypeTag-free parameter system
This commit is contained in:
@@ -217,11 +217,6 @@ struct MaxDepth<TypeTag, Properties::TTag::Co2InjectionBaseProblem>
|
||||
static constexpr type value = 2500;
|
||||
};
|
||||
|
||||
// Write the Newton convergence behavior to disk?
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::Co2InjectionBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
template<class TypeTag>
|
||||
struct SimulationName<TypeTag, Properties::TTag::Co2InjectionBaseProblem>
|
||||
{ static constexpr auto value = "co2injection"; };
|
||||
|
@@ -190,11 +190,6 @@ struct LinearSolverTolerance<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
||||
static constexpr type value = 1e-3;
|
||||
};
|
||||
|
||||
// Write the Newton convergence behavior to disk?
|
||||
template <class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
template <class TypeTag>
|
||||
struct NewtonTolerance<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
||||
{
|
||||
|
@@ -143,11 +143,6 @@ struct InitialWaterSaturation<TypeTag, Properties::TTag::FingerBaseProblem>
|
||||
static constexpr type value = 0.01;
|
||||
};
|
||||
|
||||
// Write the solutions of individual newton iterations?
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::FingerBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
namespace Opm {
|
||||
|
@@ -97,11 +97,6 @@ template<class TypeTag>
|
||||
struct EnableGravity<TypeTag, Properties::TTag::InfiltrationBaseProblem>
|
||||
{ static constexpr bool value = true; };
|
||||
|
||||
// Write newton convergence?
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::InfiltrationBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
namespace Opm {
|
||||
|
@@ -186,10 +186,10 @@ struct LensUpperRightZ<TypeTag, Properties::TTag::LensBaseProblem>
|
||||
static constexpr type value = 1.0;
|
||||
};
|
||||
|
||||
// Write the solutions of individual newton iterations?
|
||||
// By default, include the intrinsic permeability tensor to the VTK output files
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::LensBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
struct VtkWriteIntrinsicPermeabilities<TypeTag, Properties::TTag::LensBaseProblem>
|
||||
{ static constexpr bool value = true; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
|
@@ -148,11 +148,6 @@ struct MaxDepth<TypeTag, Properties::TTag::ReservoirBaseProblem>
|
||||
static constexpr type value = 2500;
|
||||
};
|
||||
|
||||
// Write the Newton convergence behavior to disk?
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::ReservoirBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
// increase the tolerance for this problem to get larger time steps
|
||||
template<class TypeTag>
|
||||
struct NewtonTolerance<TypeTag, Properties::TTag::ReservoirBaseProblem>
|
||||
|
@@ -108,11 +108,6 @@ template<class TypeTag>
|
||||
struct EnableGravity<TypeTag, Properties::TTag::RichardsLensProblem>
|
||||
{ static constexpr bool value = true; };
|
||||
|
||||
// Do not write the intermediate results of the newton method
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::RichardsLensProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
// Set the "desireable" number of newton iterations of a time step
|
||||
template<class TypeTag>
|
||||
struct NewtonTargetIterations<TypeTag, Properties::TTag::RichardsLensProblem>
|
||||
|
@@ -140,10 +140,9 @@ template<class TypeTag>
|
||||
struct EnableGravity<TypeTag, Properties::TTag::WaterAirBaseProblem>
|
||||
{ static constexpr bool value = true; };
|
||||
|
||||
// Write newton convergence
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::WaterAirBaseProblem>
|
||||
{ static constexpr bool value = false; };
|
||||
struct PreconditionerOrder<TypeTag, Properties::TTag::WaterAirBaseProblem>
|
||||
{ static constexpr int value = 2; };
|
||||
|
||||
} // namespace Opm::Parameters
|
||||
|
||||
|
@@ -81,10 +81,6 @@ struct NewtonConvergenceWriter<TypeTag, TTag::NewtonMethod> { using type = NullC
|
||||
|
||||
namespace Opm::Parameters {
|
||||
|
||||
template<class TypeTag>
|
||||
struct NewtonWriteConvergence<TypeTag, Properties::TTag::NewtonMethod>
|
||||
{ static constexpr bool value = false; };
|
||||
|
||||
template<class TypeTag>
|
||||
struct NewtonTolerance<TypeTag, Properties::TTag::NewtonMethod>
|
||||
{
|
||||
@@ -165,7 +161,7 @@ public:
|
||||
Parameters::Register<Parameters::NewtonVerbose>
|
||||
("Specify whether the Newton method should inform "
|
||||
"the user about its progress or not");
|
||||
Parameters::registerParam<TypeTag, Parameters::NewtonWriteConvergence>
|
||||
Parameters::Register<Parameters::NewtonWriteConvergence>
|
||||
("Write the convergence behaviour of the Newton "
|
||||
"method to a VTK file");
|
||||
Parameters::registerParam<TypeTag, Parameters::NewtonTargetIterations>
|
||||
@@ -553,8 +549,9 @@ protected:
|
||||
{
|
||||
numIterations_ = 0;
|
||||
|
||||
if (Parameters::get<TypeTag, Parameters::NewtonWriteConvergence>())
|
||||
if (Parameters::Get<Parameters::NewtonWriteConvergence>()) {
|
||||
convergenceWriter_.beginTimeStep();
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -770,7 +767,7 @@ protected:
|
||||
void writeConvergence_(const SolutionVector& currentSolution,
|
||||
const GlobalEqVector& solutionUpdate)
|
||||
{
|
||||
if (Parameters::get<TypeTag, Parameters::NewtonWriteConvergence>()) {
|
||||
if (Parameters::Get<Parameters::NewtonWriteConvergence>()) {
|
||||
convergenceWriter_.beginIteration();
|
||||
convergenceWriter_.writeFields(currentSolution, solutionUpdate);
|
||||
convergenceWriter_.endIteration();
|
||||
@@ -842,8 +839,9 @@ protected:
|
||||
*/
|
||||
void end_()
|
||||
{
|
||||
if (Parameters::get<TypeTag, Parameters::NewtonWriteConvergence>())
|
||||
if (Parameters::Get<Parameters::NewtonWriteConvergence>()) {
|
||||
convergenceWriter_.endTimeStep();
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -32,8 +32,7 @@ struct NewtonVerbose { static constexpr bool value = true; };
|
||||
|
||||
//! Specifies whether the convergence rate and the global residual
|
||||
//! gets written out to disk for every Newton iteration
|
||||
template<class TypeTag, class MyTypeTag>
|
||||
struct NewtonWriteConvergence { using type = Properties::UndefinedProperty; };
|
||||
struct NewtonWriteConvergence { static constexpr bool value = false; };
|
||||
|
||||
/*!
|
||||
* \brief The value for the error below which convergence is declared
|
||||
|
Reference in New Issue
Block a user