changed: move the EndTime parameter to Opm::Parameters

This commit is contained in:
Arne Morten Kvarving 2024-07-01 10:20:05 +02:00
parent 78cd842193
commit 7101b68989
20 changed files with 173 additions and 145 deletions

View File

@ -206,14 +206,6 @@ struct Temperature<TypeTag, TTag::Co2InjectionBaseProblem>
template<class TypeTag> template<class TypeTag>
struct SimulationName<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr auto value = "co2injection"; }; struct SimulationName<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr auto value = "co2injection"; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e4;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::Co2InjectionBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::Co2InjectionBaseProblem>
@ -230,6 +222,14 @@ struct GridFile<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr auto
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1e4;
};
// Write the Newton convergence behavior to disk? // Write the Newton convergence behavior to disk?
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::Co2InjectionBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::Co2InjectionBaseProblem>

View File

@ -163,13 +163,6 @@ struct SimulationName<TypeTag, TTag::CO2PTBaseProblem> {
static constexpr auto value = "co2_ptflash"; static constexpr auto value = "co2_ptflash";
}; };
// The default for the end time of the simulation
template <class TypeTag>
struct EndTime<TypeTag, TTag::CO2PTBaseProblem> {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 60. * 60.;
};
// convergence control // convergence control
template <class TypeTag> template <class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::CO2PTBaseProblem> { struct InitialTimeStepSize<TypeTag, TTag::CO2PTBaseProblem> {
@ -277,6 +270,13 @@ struct EnableEnergy<TypeTag, TTag::CO2PTBaseProblem> {
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template <class TypeTag>
struct EndTime<TypeTag, Properties::TTag::CO2PTBaseProblem> {
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 60. * 60.;
};
// Write the Newton convergence behavior to disk? // Write the Newton convergence behavior to disk?
template <class TypeTag> template <class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::CO2PTBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::CO2PTBaseProblem>

View File

@ -116,14 +116,6 @@ public:
using type = Opm::SomertonThermalConductionLaw<FluidSystem, Scalar>; using type = Opm::SomertonThermalConductionLaw<FluidSystem, Scalar>;
}; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::CuvetteBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 180;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::CuvetteBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::CuvetteBaseProblem>
@ -140,6 +132,14 @@ struct GridFile<TypeTag, TTag::CuvetteBaseProblem> { static constexpr auto value
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::CuvetteBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 180;
};
// Set the maximum time step // Set the maximum time step
template<class TypeTag> template<class TypeTag>
struct MaxTimeStepSize<TypeTag, Properties::TTag::CuvetteBaseProblem> struct MaxTimeStepSize<TypeTag, Properties::TTag::CuvetteBaseProblem>

View File

@ -137,14 +137,6 @@ struct CellsY<TypeTag, TTag::DiffusionBaseProblem> { static constexpr unsigned v
template<class TypeTag> template<class TypeTag>
struct CellsZ<TypeTag, TTag::DiffusionBaseProblem> { static constexpr unsigned value = 1; }; struct CellsZ<TypeTag, TTag::DiffusionBaseProblem> { static constexpr unsigned value = 1; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::DiffusionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e6;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::DiffusionBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::DiffusionBaseProblem>
@ -155,6 +147,18 @@ struct InitialTimeStepSize<TypeTag, TTag::DiffusionBaseProblem>
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::DiffusionBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1e6;
};
} // namespace Opm::Parameters
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -170,14 +170,6 @@ struct CellsY<TypeTag, TTag::FingerBaseProblem> { static constexpr unsigned valu
template<class TypeTag> template<class TypeTag>
struct CellsZ<TypeTag, TTag::FingerBaseProblem> { static constexpr unsigned value = 1; }; struct CellsZ<TypeTag, TTag::FingerBaseProblem> { static constexpr unsigned value = 1; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 215;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::FingerBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::FingerBaseProblem>
@ -190,6 +182,14 @@ struct InitialTimeStepSize<TypeTag, TTag::FingerBaseProblem>
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 215;
};
// Write the solutions of individual newton iterations? // Write the solutions of individual newton iterations?
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::FingerBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::FingerBaseProblem>

View File

@ -164,14 +164,6 @@ struct EnableConstraints<TypeTag, TTag::FractureProblem> { static constexpr bool
template<class TypeTag> template<class TypeTag>
struct GridFile<TypeTag, TTag::FractureProblem> { static constexpr auto value = "data/fracture.art.dgf"; }; struct GridFile<TypeTag, TTag::FractureProblem> { static constexpr auto value = "data/fracture.art.dgf"; };
// Set the default value for the end time
template<class TypeTag>
struct EndTime<TypeTag, TTag::FractureProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 3e3;
};
// Set the default value for the initial time step size // Set the default value for the initial time step size
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::FractureProblem> struct InitialTimeStepSize<TypeTag, TTag::FractureProblem>
@ -182,6 +174,18 @@ struct InitialTimeStepSize<TypeTag, TTag::FractureProblem>
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// Set the default value for the end time
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::FractureProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 3e3;
};
} // namespace Opm::Parameters
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -145,14 +145,6 @@ struct PermeabilityLens<TypeTag, TTag::GroundWaterBaseProblem>
template<class TypeTag> template<class TypeTag>
struct EnableGravity<TypeTag, TTag::GroundWaterBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::GroundWaterBaseProblem> { static constexpr bool value = true; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::GroundWaterBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::GroundWaterBaseProblem>
@ -176,6 +168,18 @@ struct LinearSolverWrapper<TypeTag, TTag::GroundWaterBaseProblem>
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1;
};
} // namespace Opm::Parameters
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -96,14 +96,6 @@ public:
using type = Opm::ThreePhaseParkerVanGenuchten<Traits>; using type = Opm::ThreePhaseParkerVanGenuchten<Traits>;
}; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::InfiltrationBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 6e3;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::InfiltrationBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::InfiltrationBaseProblem>
@ -121,6 +113,14 @@ struct GridFile<TypeTag, TTag::InfiltrationBaseProblem>
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::InfiltrationBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 6e3;
};
// Write newton convergence? // Write newton convergence?
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::InfiltrationBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::InfiltrationBaseProblem>

View File

@ -201,14 +201,6 @@ struct CellsY<TypeTag, TTag::LensBaseProblem> { static constexpr unsigned value
template<class TypeTag> template<class TypeTag>
struct CellsZ<TypeTag, TTag::LensBaseProblem> { static constexpr unsigned value = 16; }; struct CellsZ<TypeTag, TTag::LensBaseProblem> { static constexpr unsigned value = 16; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 30e3;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::LensBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::LensBaseProblem>
@ -235,6 +227,14 @@ template<class TypeTag>
struct EnableStorageCache<TypeTag, Properties::TTag::LensBaseProblem> struct EnableStorageCache<TypeTag, Properties::TTag::LensBaseProblem>
{ static constexpr bool value = true; }; { static constexpr bool value = true; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 30e3;
};
// Write the solutions of individual newton iterations? // Write the solutions of individual newton iterations?
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::LensBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::LensBaseProblem>

View File

@ -115,14 +115,6 @@ struct SolidEnergyLaw<TypeTag, TTag::ObstacleBaseProblem>
template<class TypeTag> template<class TypeTag>
struct EnableGravity<TypeTag, TTag::ObstacleBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::ObstacleBaseProblem> { static constexpr bool value = true; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::ObstacleBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e4;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::ObstacleBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::ObstacleBaseProblem>
@ -137,6 +129,18 @@ struct GridFile<TypeTag, TTag::ObstacleBaseProblem> { static constexpr auto valu
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::ObstacleBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1e4;
};
}
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -80,14 +80,6 @@ struct EnableGravity<TypeTag, TTag::OutflowBaseProblem> { static constexpr bool
template<class TypeTag> template<class TypeTag>
struct VtkWriteMassFractions<TypeTag, TTag::OutflowBaseProblem> { static constexpr bool value = true; }; struct VtkWriteMassFractions<TypeTag, TTag::OutflowBaseProblem> { static constexpr bool value = true; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::OutflowBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::OutflowBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::OutflowBaseProblem>
@ -102,6 +94,18 @@ struct GridFile<TypeTag, TTag::OutflowBaseProblem> { static constexpr auto value
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::OutflowBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 100;
};
} // namespac Opm::Parameters
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -154,14 +154,6 @@ struct CellsY<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr unsig
template<class TypeTag> template<class TypeTag>
struct CellsZ<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr unsigned value = 1; }; struct CellsZ<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr unsigned value = 1; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::PowerInjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::PowerInjectionBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::PowerInjectionBaseProblem>
@ -172,6 +164,18 @@ struct InitialTimeStepSize<TypeTag, TTag::PowerInjectionBaseProblem>
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 100;
};
} // namespace Opm::Parameters
namespace Opm { namespace Opm {
/*! /*!
* \ingroup TestProblems * \ingroup TestProblems

View File

@ -122,17 +122,6 @@ struct Temperature<TypeTag, TTag::ReservoirBaseProblem>
static constexpr type value = 293.15; static constexpr type value = 293.15;
}; };
//! The default for the end time of the simulation [s].
//!
//! By default this problem spans 1000 days (100 "settle down" days and 900 days of
//! production)
template<class TypeTag>
struct EndTime<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1000.0*24*60*60;
};
// The default for the initial time step size of the simulation [s] // The default for the initial time step size of the simulation [s]
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::ReservoirBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::ReservoirBaseProblem>
@ -175,6 +164,17 @@ struct GridFile<TypeTag, TTag::ReservoirBaseProblem> { static constexpr auto val
namespace Opm::Parameters { namespace Opm::Parameters {
//! The default for the end time of the simulation [s].
//!
//! By default this problem spans 1000 days (100 "settle down" days and 900 days of
//! production)
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1000.0*24*60*60;
};
// Write the Newton convergence behavior to disk? // Write the Newton convergence behavior to disk?
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::ReservoirBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::ReservoirBaseProblem>

View File

@ -107,14 +107,6 @@ struct EnableGravity<TypeTag, TTag::RichardsLensProblem> { static constexpr bool
template<class TypeTag> template<class TypeTag>
struct NumericDifferenceMethod<TypeTag, TTag::RichardsLensProblem> { static constexpr int value = 0; }; struct NumericDifferenceMethod<TypeTag, TTag::RichardsLensProblem> { static constexpr int value = 0; };
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, TTag::RichardsLensProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 3000;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::RichardsLensProblem> struct InitialTimeStepSize<TypeTag, TTag::RichardsLensProblem>
@ -131,6 +123,14 @@ struct GridFile<TypeTag, TTag::RichardsLensProblem> { static constexpr auto valu
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::RichardsLensProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 3000;
};
// Do not write the intermediate results of the newton method // Do not write the intermediate results of the newton method
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::RichardsLensProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::RichardsLensProblem>

View File

@ -123,14 +123,6 @@ struct EnableGravity<TypeTag, TTag::WaterAirBaseProblem> { static constexpr bool
template<class TypeTag> template<class TypeTag>
struct NumericDifferenceMethod<TypeTag, TTag::WaterAirBaseProblem> { static constexpr int value = +1; }; struct NumericDifferenceMethod<TypeTag, TTag::WaterAirBaseProblem> { static constexpr int value = +1; };
// The default for the end time of the simulation (1 year)
template<class TypeTag>
struct EndTime<TypeTag, TTag::WaterAirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0 * 365 * 24 * 60 * 60;
};
// The default for the initial time step size of the simulation // The default for the initial time step size of the simulation
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::WaterAirBaseProblem> struct InitialTimeStepSize<TypeTag, TTag::WaterAirBaseProblem>
@ -162,6 +154,14 @@ struct PreconditionerOrder<TypeTag, TTag::WaterAirBaseProblem> { static constexp
namespace Opm::Parameters { namespace Opm::Parameters {
// The default for the end time of the simulation (1 year)
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::WaterAirBaseProblem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 1.0 * 365 * 24 * 60 * 60;
};
// Write newton convergence // Write newton convergence
template<class TypeTag> template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, Properties::TTag::WaterAirBaseProblem> struct NewtonWriteConvergence<TypeTag, Properties::TTag::WaterAirBaseProblem>

View File

@ -124,14 +124,6 @@ public:
template<class TypeTag> template<class TypeTag>
struct EnableGravity<TypeTag, TTag::Tutorial1Problem> { static constexpr bool value = false; }; /*@\label{tutorial1:gravity}@*/ struct EnableGravity<TypeTag, TTag::Tutorial1Problem> { static constexpr bool value = false; }; /*@\label{tutorial1:gravity}@*/
// define how long the simulation should run [s]
template<class TypeTag>
struct EndTime<TypeTag, TTag::Tutorial1Problem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100e3;
}; /*@\label{tutorial1:default-params-begin}@*/
// define the size of the initial time step [s] // define the size of the initial time step [s]
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::Tutorial1Problem> struct InitialTimeStepSize<TypeTag, TTag::Tutorial1Problem>
@ -170,6 +162,18 @@ struct CellsZ<TypeTag, TTag::Tutorial1Problem> { static constexpr unsigned value
} // namespace Opm::Properties } // namespace Opm::Properties
namespace Opm::Parameters {
// define how long the simulation should run [s]
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::Tutorial1Problem>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = 100e3;
}; /*@\label{tutorial1:default-params-begin}@*/
} // namespace Opm::Parameters
namespace Opm { namespace Opm {
//! Tutorial problem using the "immiscible" model. //! Tutorial problem using the "immiscible" model.
template <class TypeTag> template <class TypeTag>

View File

@ -32,6 +32,10 @@
namespace Opm::Parameters { namespace Opm::Parameters {
//! The default value for the simulation's end time
template<class TypeTag, class MyTypeTag>
struct EndTime { using type = Properties::UndefinedProperty; };
//! Property which tells the Vanguard how often the grid should be refined //! Property which tells the Vanguard how often the grid should be refined
//! after creation. //! after creation.
template<class TypeTag, class MyTypeTag> template<class TypeTag, class MyTypeTag>

View File

@ -105,10 +105,6 @@ template<class TypeTag, class MyTypeTag>
struct GridPart { using type = UndefinedProperty; }; struct GridPart { using type = UndefinedProperty; };
#endif #endif
//! The default value for the simulation's end time
template<class TypeTag, class MyTypeTag>
struct EndTime { using type = UndefinedProperty; };
//! The default value for the simulation's initial time step size //! The default value for the simulation's initial time step size
template<class TypeTag, class MyTypeTag> template<class TypeTag, class MyTypeTag>
struct InitialTimeStepSize { using type = UndefinedProperty; }; struct InitialTimeStepSize { using type = UndefinedProperty; };
@ -206,14 +202,6 @@ template<class TypeTag>
struct GridView<TypeTag, TTag::NumericModel> { using type = typename GetPropType<TypeTag, Properties::Grid>::LeafGridView; }; struct GridView<TypeTag, TTag::NumericModel> { using type = typename GetPropType<TypeTag, Properties::Grid>::LeafGridView; };
#endif #endif
//! The default value for the simulation's end time
template<class TypeTag>
struct EndTime<TypeTag, TTag::NumericModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = -1e35;
};
//! The default value for the simulation's initial time step size //! The default value for the simulation's initial time step size
template<class TypeTag> template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::NumericModel> struct InitialTimeStepSize<TypeTag, TTag::NumericModel>
@ -241,6 +229,14 @@ struct Vanguard<TypeTag, TTag::NumericModel> { using type = Opm::DgfVanguard<Typ
namespace Opm::Parameters { namespace Opm::Parameters {
//! The default value for the simulation's end time
template<class TypeTag>
struct EndTime<TypeTag, Properties::TTag::NumericModel>
{
using type = GetPropType<TypeTag, Properties::Scalar>;
static constexpr type value = -1e35;
};
//! Set the number of refinement levels of the grid to 0. This does not belong //! Set the number of refinement levels of the grid to 0. This does not belong
//! here, strictly speaking. //! here, strictly speaking.
template<class TypeTag> template<class TypeTag>

View File

@ -129,7 +129,7 @@ public:
timeStepIdx_ = 0; timeStepIdx_ = 0;
startTime_ = 0.0; startTime_ = 0.0;
time_ = 0.0; time_ = 0.0;
endTime_ = Parameters::get<TypeTag, Properties::EndTime>(); endTime_ = Parameters::get<TypeTag, Parameters::EndTime>();
timeStepSize_ = Parameters::get<TypeTag, Properties::InitialTimeStepSize>(); timeStepSize_ = Parameters::get<TypeTag, Properties::InitialTimeStepSize>();
assert(timeStepSize_ > 0); assert(timeStepSize_ > 0);
const std::string& predetTimeStepFile = const std::string& predetTimeStepFile =
@ -254,7 +254,7 @@ public:
*/ */
static void registerParameters() static void registerParameters()
{ {
Parameters::registerParam<TypeTag, Properties::EndTime> Parameters::registerParam<TypeTag, Parameters::EndTime>
("The simulation time at which the simulation is finished [s]"); ("The simulation time at which the simulation is finished [s]");
Parameters::registerParam<TypeTag, Properties::InitialTimeStepSize> Parameters::registerParam<TypeTag, Properties::InitialTimeStepSize>
("The size of the initial time step [s]"); ("The size of the initial time step [s]");

View File

@ -318,7 +318,7 @@ static inline int start(int argc, char **argv, bool registerParams=true)
#endif #endif
// read the initial time step and the end time // read the initial time step and the end time
Scalar endTime = Parameters::get<TypeTag, Properties::EndTime>(); Scalar endTime = Parameters::get<TypeTag, Parameters::EndTime>();
if (endTime < -1e50) { if (endTime < -1e50) {
if (myRank == 0) if (myRank == 0)
Parameters::printUsage<TypeTag>(argv[0], Parameters::printUsage<TypeTag>(argv[0],