move NewtonWriteConvergence to TypeTag-free parameter system

This commit is contained in:
Arne Morten Kvarving
2024-07-05 17:49:51 +02:00
parent 36b05f9295
commit 6d649be5db
10 changed files with 12 additions and 46 deletions

View File

@@ -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"; };

View File

@@ -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>
{

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View File

@@ -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();
}
}
/*!

View File

@@ -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