[properties] replace SET_SCALAR_PROP calls

This commit is contained in:
Bernd Flemisch 2020-06-09 10:43:28 +02:00
parent 725c022e69
commit cbffa2a7ba
30 changed files with 588 additions and 98 deletions

View File

@ -66,7 +66,12 @@ struct Scalar<TypeTag, TTag::Co2InjectionFlashEcfvProblem> { using type = quad;
// precision scalars... (this seems to only apply to Dune >= 2.4) // precision scalars... (this seems to only apply to Dune >= 2.4)
SET_TAG_PROP(Co2InjectionFlashEcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver); SET_TAG_PROP(Co2InjectionFlashEcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver);
#else #else
SET_SCALAR_PROP(Co2InjectionFlashEcfvProblem, NewtonTolerance, 1e-5); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::Co2InjectionFlashEcfvProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-5;
};
#endif #endif
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -66,7 +66,12 @@ struct Scalar<TypeTag, TTag::Co2InjectionFlashNiEcfvProblem> { using type = quad
// precision scalars... (this seems to only apply to Dune >= 2.4) // precision scalars... (this seems to only apply to Dune >= 2.4)
SET_TAG_PROP(Co2InjectionFlashNiEcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver); SET_TAG_PROP(Co2InjectionFlashNiEcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver);
#else #else
SET_SCALAR_PROP(Co2InjectionFlashNiEcfvProblem, NewtonTolerance, 1e-5); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::Co2InjectionFlashNiEcfvProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-5;
};
#endif #endif
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -63,7 +63,12 @@ struct Scalar<TypeTag, TTag::Co2InjectionFlashNiVcfvProblem> { using type = quad
// precision scalars... (this seems to only apply to Dune >= 2.4) // precision scalars... (this seems to only apply to Dune >= 2.4)
SET_TAG_PROP(Co2InjectionFlashNiVcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver); SET_TAG_PROP(Co2InjectionFlashNiVcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver);
#else #else
SET_SCALAR_PROP(Co2InjectionFlashNiVcfvProblem, NewtonTolerance, 1e-5); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::Co2InjectionFlashNiVcfvProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-5;
};
#endif #endif
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -63,7 +63,12 @@ struct Scalar<TypeTag, TTag::Co2InjectionFlashVcfvProblem> { using type = quad;
// precision scalars... (this seems to only apply to Dune >= 2.4) // precision scalars... (this seems to only apply to Dune >= 2.4)
SET_TAG_PROP(Co2InjectionFlashVcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver); SET_TAG_PROP(Co2InjectionFlashVcfvProblem, LinearSolverSplice, ParallelBiCGStabLinearSolver);
#else #else
SET_SCALAR_PROP(Co2InjectionFlashVcfvProblem, NewtonTolerance, 1e-5); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::Co2InjectionFlashVcfvProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-5;
};
#endif #endif
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -166,24 +166,64 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr bool value = true; };
// set the defaults for the problem specific properties // set the defaults for the problem specific properties
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemPressureLow, 3e7); template<class TypeTag>
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemPressureHigh, 4e7); struct FluidSystemPressureLow<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 3e7;
};
template<class TypeTag>
struct FluidSystemPressureHigh<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 4e7;
};
template<class TypeTag> template<class TypeTag>
struct FluidSystemNumPressure<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr int value = 100; }; struct FluidSystemNumPressure<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr int value = 100; };
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemTemperatureLow, 290); template<class TypeTag>
SET_SCALAR_PROP(Co2InjectionBaseProblem, FluidSystemTemperatureHigh, 500); struct FluidSystemTemperatureLow<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 290;
};
template<class TypeTag>
struct FluidSystemTemperatureHigh<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 500;
};
template<class TypeTag> template<class TypeTag>
struct FluidSystemNumTemperature<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr int value = 100; }; struct FluidSystemNumTemperature<TypeTag, TTag::Co2InjectionBaseProblem> { static constexpr int value = 100; };
SET_SCALAR_PROP(Co2InjectionBaseProblem, MaxDepth, 2500); template<class TypeTag>
SET_SCALAR_PROP(Co2InjectionBaseProblem, Temperature, 293.15); struct MaxDepth<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 2500;
};
template<class TypeTag>
struct Temperature<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 293.15;
};
SET_STRING_PROP(Co2InjectionBaseProblem, SimulationName, "co2injection"); SET_STRING_PROP(Co2InjectionBaseProblem, SimulationName, "co2injection");
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(Co2InjectionBaseProblem, EndTime, 1e4); 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
SET_SCALAR_PROP(Co2InjectionBaseProblem, InitialTimeStepSize, 250); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::Co2InjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 250;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(Co2InjectionBaseProblem, GridFile, "data/co2injection.dgf"); SET_STRING_PROP(Co2InjectionBaseProblem, GridFile, "data/co2injection.dgf");

View File

@ -80,7 +80,12 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::CuvetteBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::CuvetteBaseProblem> { static constexpr bool value = true; };
// Set the maximum time step // Set the maximum time step
SET_SCALAR_PROP(CuvetteBaseProblem, MaxTimeStepSize, 600.); template<class TypeTag>
struct MaxTimeStepSize<TypeTag, TTag::CuvetteBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 600.;
};
// Set the material Law // Set the material Law
template<class TypeTag> template<class TypeTag>
@ -118,10 +123,20 @@ public:
}; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(CuvetteBaseProblem, EndTime, 180); 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
SET_SCALAR_PROP(CuvetteBaseProblem, InitialTimeStepSize, 1); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::CuvetteBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(CuvetteBaseProblem, GridFile, "./data/cuvette_11x4.dgf"); SET_STRING_PROP(CuvetteBaseProblem, GridFile, "./data/cuvette_11x4.dgf");

View File

@ -108,9 +108,24 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::DiffusionBaseProblem> { static constexpr bool value = false; }; struct EnableGravity<TypeTag, TTag::DiffusionBaseProblem> { static constexpr bool value = false; };
// define the properties specific for the diffusion problem // define the properties specific for the diffusion problem
SET_SCALAR_PROP(DiffusionBaseProblem, DomainSizeX, 1.0); template<class TypeTag>
SET_SCALAR_PROP(DiffusionBaseProblem, DomainSizeY, 1.0); struct DomainSizeX<TypeTag, TTag::DiffusionBaseProblem>
SET_SCALAR_PROP(DiffusionBaseProblem, DomainSizeZ, 1.0); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag>
struct DomainSizeY<TypeTag, TTag::DiffusionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag>
struct DomainSizeZ<TypeTag, TTag::DiffusionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag> template<class TypeTag>
struct CellsX<TypeTag, TTag::DiffusionBaseProblem> { static constexpr int value = 250; }; struct CellsX<TypeTag, TTag::DiffusionBaseProblem> { static constexpr int value = 250; };
@ -120,10 +135,20 @@ template<class TypeTag>
struct CellsZ<TypeTag, TTag::DiffusionBaseProblem> { static constexpr int value = 1; }; struct CellsZ<TypeTag, TTag::DiffusionBaseProblem> { static constexpr int value = 1; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(DiffusionBaseProblem, EndTime, 1e6); 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
SET_SCALAR_PROP(DiffusionBaseProblem, InitialTimeStepSize, 1000); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::DiffusionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1000;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -141,11 +141,31 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::FingerBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::FingerBaseProblem> { static constexpr bool value = true; };
// define the properties specific for the finger problem // define the properties specific for the finger problem
SET_SCALAR_PROP(FingerBaseProblem, DomainSizeX, 0.1); template<class TypeTag>
SET_SCALAR_PROP(FingerBaseProblem, DomainSizeY, 0.3); struct DomainSizeX<TypeTag, TTag::FingerBaseProblem>
SET_SCALAR_PROP(FingerBaseProblem, DomainSizeZ, 0.1); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.1;
};
template<class TypeTag>
struct DomainSizeY<TypeTag, TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.3;
};
template<class TypeTag>
struct DomainSizeZ<TypeTag, TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.1;
};
SET_SCALAR_PROP(FingerBaseProblem, InitialWaterSaturation, 0.01); template<class TypeTag>
struct InitialWaterSaturation<TypeTag, TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.01;
};
template<class TypeTag> template<class TypeTag>
struct CellsX<TypeTag, TTag::FingerBaseProblem> { static constexpr int value = 20; }; struct CellsX<TypeTag, TTag::FingerBaseProblem> { static constexpr int value = 20; };
@ -155,10 +175,20 @@ template<class TypeTag>
struct CellsZ<TypeTag, TTag::FingerBaseProblem> { static constexpr int value = 1; }; struct CellsZ<TypeTag, TTag::FingerBaseProblem> { static constexpr int value = 1; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(FingerBaseProblem, EndTime, 215); 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
SET_SCALAR_PROP(FingerBaseProblem, InitialTimeStepSize, 10); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::FingerBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 10;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -165,10 +165,20 @@ struct EnableConstraints<TypeTag, TTag::FractureProblem> { static constexpr bool
SET_STRING_PROP(FractureProblem, GridFile, "data/fracture.art.dgf"); SET_STRING_PROP(FractureProblem, GridFile, "data/fracture.art.dgf");
// Set the default value for the end time // Set the default value for the end time
SET_SCALAR_PROP(FractureProblem, EndTime, 3e3); 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
SET_SCALAR_PROP(FractureProblem, InitialTimeStepSize, 100); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::FractureProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -92,24 +92,74 @@ struct Grid<TypeTag, TTag::GroundWaterBaseProblem> { using type = Dune::YaspGrid
SET_TYPE_PROP(GroundWaterBaseProblem, Problem, SET_TYPE_PROP(GroundWaterBaseProblem, Problem,
Opm::GroundWaterProblem<TypeTag>); Opm::GroundWaterProblem<TypeTag>);
SET_SCALAR_PROP(GroundWaterBaseProblem, LensLowerLeftX, 0.25); template<class TypeTag>
SET_SCALAR_PROP(GroundWaterBaseProblem, LensLowerLeftY, 0.25); struct LensLowerLeftX<TypeTag, TTag::GroundWaterBaseProblem>
SET_SCALAR_PROP(GroundWaterBaseProblem, LensLowerLeftZ, 0.25); {
SET_SCALAR_PROP(GroundWaterBaseProblem, LensUpperRightX, 0.75); using type = GetPropType<TypeTag, Scalar>;
SET_SCALAR_PROP(GroundWaterBaseProblem, LensUpperRightY, 0.75); static constexpr type value = 0.25;
SET_SCALAR_PROP(GroundWaterBaseProblem, LensUpperRightZ, 0.75); };
SET_SCALAR_PROP(GroundWaterBaseProblem, Permeability, 1e-10); template<class TypeTag>
SET_SCALAR_PROP(GroundWaterBaseProblem, PermeabilityLens, 1e-12); struct LensLowerLeftY<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.25;
};
template<class TypeTag>
struct LensLowerLeftZ<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.25;
};
template<class TypeTag>
struct LensUpperRightX<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.75;
};
template<class TypeTag>
struct LensUpperRightY<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.75;
};
template<class TypeTag>
struct LensUpperRightZ<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.75;
};
template<class TypeTag>
struct Permeability<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-10;
};
template<class TypeTag>
struct PermeabilityLens<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-12;
};
// Enable gravity // Enable gravity
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 // The default for the end time of the simulation
SET_SCALAR_PROP(GroundWaterBaseProblem, EndTime, 1); 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
SET_SCALAR_PROP(GroundWaterBaseProblem, InitialTimeStepSize, 1); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::GroundWaterBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(GroundWaterBaseProblem, GridFile, "./data/groundwater_2d.dgf"); SET_STRING_PROP(GroundWaterBaseProblem, GridFile, "./data/groundwater_2d.dgf");

View File

@ -100,10 +100,20 @@ public:
}; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(InfiltrationBaseProblem, EndTime, 6e3); 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
SET_SCALAR_PROP(InfiltrationBaseProblem, InitialTimeStepSize, 60); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::InfiltrationBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 60;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(InfiltrationBaseProblem, GridFile, SET_STRING_PROP(InfiltrationBaseProblem, GridFile,

View File

@ -143,16 +143,61 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::LensBaseProblem> { static constexpr bool value = true; }; struct EnableGravity<TypeTag, TTag::LensBaseProblem> { static constexpr bool value = true; };
// define the properties specific for the lens problem // define the properties specific for the lens problem
SET_SCALAR_PROP(LensBaseProblem, LensLowerLeftX, 1.0); template<class TypeTag>
SET_SCALAR_PROP(LensBaseProblem, LensLowerLeftY, 2.0); struct LensLowerLeftX<TypeTag, TTag::LensBaseProblem>
SET_SCALAR_PROP(LensBaseProblem, LensLowerLeftZ, 0.0); {
SET_SCALAR_PROP(LensBaseProblem, LensUpperRightX, 4.0); using type = GetPropType<TypeTag, Scalar>;
SET_SCALAR_PROP(LensBaseProblem, LensUpperRightY, 3.0); static constexpr type value = 1.0;
SET_SCALAR_PROP(LensBaseProblem, LensUpperRightZ, 1.0); };
template<class TypeTag>
struct LensLowerLeftY<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 2.0;
};
template<class TypeTag>
struct LensLowerLeftZ<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.0;
};
template<class TypeTag>
struct LensUpperRightX<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 4.0;
};
template<class TypeTag>
struct LensUpperRightY<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 3.0;
};
template<class TypeTag>
struct LensUpperRightZ<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
SET_SCALAR_PROP(LensBaseProblem, DomainSizeX, 6.0); template<class TypeTag>
SET_SCALAR_PROP(LensBaseProblem, DomainSizeY, 4.0); struct DomainSizeX<TypeTag, TTag::LensBaseProblem>
SET_SCALAR_PROP(LensBaseProblem, DomainSizeZ, 1.0); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 6.0;
};
template<class TypeTag>
struct DomainSizeY<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 4.0;
};
template<class TypeTag>
struct DomainSizeZ<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag> template<class TypeTag>
struct CellsX<TypeTag, TTag::LensBaseProblem> { static constexpr int value = 48; }; struct CellsX<TypeTag, TTag::LensBaseProblem> { static constexpr int value = 48; };
@ -162,10 +207,20 @@ template<class TypeTag>
struct CellsZ<TypeTag, TTag::LensBaseProblem> { static constexpr int value = 16; }; struct CellsZ<TypeTag, TTag::LensBaseProblem> { static constexpr int value = 16; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(LensBaseProblem, EndTime, 30e3); 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
SET_SCALAR_PROP(LensBaseProblem, InitialTimeStepSize, 250); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::LensBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 250;
};
// By default, include the intrinsic permeability tensor to the VTK output files // By default, include the intrinsic permeability tensor to the VTK output files
template<class TypeTag> template<class TypeTag>

View File

@ -114,10 +114,20 @@ 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 // The default for the end time of the simulation
SET_SCALAR_PROP(ObstacleBaseProblem, EndTime, 1e4); 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
SET_SCALAR_PROP(ObstacleBaseProblem, InitialTimeStepSize, 250); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::ObstacleBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 250;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(ObstacleBaseProblem, GridFile, "./data/obstacle_24x16.dgf"); SET_STRING_PROP(ObstacleBaseProblem, GridFile, "./data/obstacle_24x16.dgf");

View File

@ -78,10 +78,20 @@ 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 // The default for the end time of the simulation
SET_SCALAR_PROP(OutflowBaseProblem, EndTime, 100); 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
SET_SCALAR_PROP(OutflowBaseProblem, InitialTimeStepSize, 1); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::OutflowBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(OutflowBaseProblem, GridFile, "./data/outflow.dgf"); SET_STRING_PROP(OutflowBaseProblem, GridFile, "./data/outflow.dgf");

View File

@ -128,9 +128,24 @@ template<class TypeTag>
struct EnableGravity<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr bool value = false; }; struct EnableGravity<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr bool value = false; };
// define the properties specific for the power injection problem // define the properties specific for the power injection problem
SET_SCALAR_PROP(PowerInjectionBaseProblem, DomainSizeX, 100.0); template<class TypeTag>
SET_SCALAR_PROP(PowerInjectionBaseProblem, DomainSizeY, 1.0); struct DomainSizeX<TypeTag, TTag::PowerInjectionBaseProblem>
SET_SCALAR_PROP(PowerInjectionBaseProblem, DomainSizeZ, 1.0); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100.0;
};
template<class TypeTag>
struct DomainSizeY<TypeTag, TTag::PowerInjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag>
struct DomainSizeZ<TypeTag, TTag::PowerInjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
template<class TypeTag> template<class TypeTag>
struct CellsX<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr int value = 250; }; struct CellsX<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr int value = 250; };
@ -140,10 +155,20 @@ template<class TypeTag>
struct CellsZ<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr int value = 1; }; struct CellsZ<TypeTag, TTag::PowerInjectionBaseProblem> { static constexpr int value = 1; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(PowerInjectionBaseProblem, EndTime, 100); 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
SET_SCALAR_PROP(PowerInjectionBaseProblem, InitialTimeStepSize, 1e-3); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::PowerInjectionBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-3;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -110,20 +110,45 @@ template<class TypeTag>
struct EnableConstraints<TypeTag, TTag::ReservoirBaseProblem> { static constexpr bool value = true; }; struct EnableConstraints<TypeTag, TTag::ReservoirBaseProblem> { static constexpr bool value = true; };
// set the defaults for some problem specific properties // set the defaults for some problem specific properties
SET_SCALAR_PROP(ReservoirBaseProblem, MaxDepth, 2500); template<class TypeTag>
SET_SCALAR_PROP(ReservoirBaseProblem, Temperature, 293.15); struct MaxDepth<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 2500;
};
template<class TypeTag>
struct Temperature<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 293.15;
};
//! The default for the end time of the simulation [s]. //! 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 //! By default this problem spans 1000 days (100 "settle down" days and 900 days of
//! production) //! production)
SET_SCALAR_PROP(ReservoirBaseProblem, EndTime, 1000.0*24*60*60); 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]
SET_SCALAR_PROP(ReservoirBaseProblem, InitialTimeStepSize, 100e3); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100e3;
};
// The width of producer/injector wells as a fraction of the width of the spatial domain // The width of producer/injector wells as a fraction of the width of the spatial domain
SET_SCALAR_PROP(ReservoirBaseProblem, WellWidth, 0.01); template<class TypeTag>
struct WellWidth<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.01;
};
/*! /*!
* \brief Explicitly set the fluid system to the black-oil fluid system * \brief Explicitly set the fluid system to the black-oil fluid system
@ -147,7 +172,12 @@ public:
SET_STRING_PROP(ReservoirBaseProblem, GridFile, "data/reservoir.dgf"); SET_STRING_PROP(ReservoirBaseProblem, GridFile, "data/reservoir.dgf");
// increase the tolerance for this problem to get larger time steps // increase the tolerance for this problem to get larger time steps
SET_SCALAR_PROP(ReservoirBaseProblem, NewtonTolerance, 1e-6); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::ReservoirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-6;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -122,10 +122,20 @@ template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, TTag::RichardsLensProblem> { static constexpr bool value = false; }; struct NewtonWriteConvergence<TypeTag, TTag::RichardsLensProblem> { static constexpr bool value = false; };
// The default for the end time of the simulation // The default for the end time of the simulation
SET_SCALAR_PROP(RichardsLensProblem, EndTime, 3000); 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
SET_SCALAR_PROP(RichardsLensProblem, InitialTimeStepSize, 100); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::RichardsLensProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 100;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(RichardsLensProblem, GridFile, "./data/richardslens_24x16.dgf"); SET_STRING_PROP(RichardsLensProblem, GridFile, "./data/richardslens_24x16.dgf");

View File

@ -126,10 +126,20 @@ template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, TTag::WaterAirBaseProblem> { static constexpr bool value = false; }; struct NewtonWriteConvergence<TypeTag, TTag::WaterAirBaseProblem> { static constexpr bool value = false; };
// The default for the end time of the simulation (1 year) // The default for the end time of the simulation (1 year)
SET_SCALAR_PROP(WaterAirBaseProblem, EndTime, 1.0 * 365 * 24 * 60 * 60); 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
SET_SCALAR_PROP(WaterAirBaseProblem, InitialTimeStepSize, 250); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::WaterAirBaseProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 250;
};
// The default DGF file to load // The default DGF file to load
SET_STRING_PROP(WaterAirBaseProblem, GridFile, "./data/waterair.dgf"); SET_STRING_PROP(WaterAirBaseProblem, GridFile, "./data/waterair.dgf");

View File

@ -50,7 +50,12 @@ struct EnableStorageCache<TypeTag, TTag::ReservoirNcpVcfvProblem> { static const
// reduce the base epsilon for the finite difference method to 10^-11. for some reason // reduce the base epsilon for the finite difference method to 10^-11. for some reason
// the simulator converges better with this. (TODO: use automatic differentiation?) // the simulator converges better with this. (TODO: use automatic differentiation?)
SET_SCALAR_PROP(ReservoirNcpVcfvProblem, BaseEpsilon, 1e-11); template<class TypeTag>
struct BaseEpsilon<TypeTag, TTag::ReservoirNcpVcfvProblem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-11;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -119,15 +119,40 @@ 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] // define how long the simulation should run [s]
SET_SCALAR_PROP(Tutorial1Problem, EndTime, 100e3); /*@\label{tutorial1:default-params-begin}@*/ 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]
SET_SCALAR_PROP(Tutorial1Problem, InitialTimeStepSize, 125.0); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::Tutorial1Problem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 125.0;
};
// define the physical size of the problem's domain [m] // define the physical size of the problem's domain [m]
SET_SCALAR_PROP(Tutorial1Problem, DomainSizeX, 300.0); /*@\label{tutorial1:grid-default-params-begin}@*/ template<class TypeTag>
SET_SCALAR_PROP(Tutorial1Problem, DomainSizeY, 60.0); struct DomainSizeX<TypeTag, TTag::Tutorial1Problem>
SET_SCALAR_PROP(Tutorial1Problem, DomainSizeZ, 0.0); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 300.0;
}; /*@\label{tutorial1:grid-default-params-begin}@*/
template<class TypeTag>
struct DomainSizeY<TypeTag, TTag::Tutorial1Problem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 60.0;
};
template<class TypeTag>
struct DomainSizeZ<TypeTag, TTag::Tutorial1Problem>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.0;
};
// // define the number of cells used for discretizing the physical domain // // define the number of cells used for discretizing the physical domain
template<class TypeTag> template<class TypeTag>

View File

@ -49,9 +49,24 @@ struct PriVarOscilationThreshold { using type = UndefinedProperty; };
template<class TypeTag, class MyTypeTag> template<class TypeTag, class MyTypeTag>
struct ProjectSaturations { using type = UndefinedProperty; }; struct ProjectSaturations { using type = UndefinedProperty; };
SET_SCALAR_PROP(NewtonMethod, DpMaxRel, 0.3); template<class TypeTag>
SET_SCALAR_PROP(NewtonMethod, DsMax, 0.2); struct DpMaxRel<TypeTag, TTag::NewtonMethod>
SET_SCALAR_PROP(NewtonMethod, PriVarOscilationThreshold, 1e-5); {
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.3;
};
template<class TypeTag>
struct DsMax<TypeTag, TTag::NewtonMethod>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.2;
};
template<class TypeTag>
struct PriVarOscilationThreshold<TypeTag, TTag::NewtonMethod>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-5;
};
template<class TypeTag> template<class TypeTag>
struct ProjectSaturations<TypeTag, TTag::NewtonMethod> { static constexpr bool value = false; }; struct ProjectSaturations<TypeTag, TTag::NewtonMethod> { static constexpr bool value = false; };

View File

@ -220,10 +220,20 @@ template<class TypeTag>
struct Linearizer<TypeTag, TTag::FvBaseDiscretization> { using type = Opm::FvBaseLinearizer<TypeTag>; }; struct Linearizer<TypeTag, TTag::FvBaseDiscretization> { using type = Opm::FvBaseLinearizer<TypeTag>; };
//! use an unlimited time step size by default //! use an unlimited time step size by default
SET_SCALAR_PROP(FvBaseDiscretization, MaxTimeStepSize, std::numeric_limits<Scalar>::infinity()); template<class TypeTag>
struct MaxTimeStepSize<TypeTag, TTag::FvBaseDiscretization>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = std::numeric_limits<type>::infinity();
};
//! By default, accept any time step larger than zero //! By default, accept any time step larger than zero
SET_SCALAR_PROP(FvBaseDiscretization, MinTimeStepSize, 0.0); template<class TypeTag>
struct MinTimeStepSize<TypeTag, TTag::FvBaseDiscretization>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 0.0;
};
//! Disable grid adaptation by default //! Disable grid adaptation by default
template<class TypeTag> template<class TypeTag>
@ -270,10 +280,20 @@ struct EnableThermodynamicHints<TypeTag, TTag::FvBaseDiscretization> { static co
// approximation accurately. Assuming that the value for the current solution is quite // approximation accurately. Assuming that the value for the current solution is quite
// close to the final value, a reduction of 3 orders of magnitude in the defect should be // close to the final value, a reduction of 3 orders of magnitude in the defect should be
// sufficient... // sufficient...
SET_SCALAR_PROP(FvBaseDiscretization, LinearSolverTolerance, 1e-3); template<class TypeTag>
struct LinearSolverTolerance<TypeTag, TTag::FvBaseDiscretization>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-3;
};
// use default initialization based on rule-of-thumb of Newton tolerance // use default initialization based on rule-of-thumb of Newton tolerance
SET_SCALAR_PROP(FvBaseDiscretization, LinearSolverAbsTolerance, -1.); template<class TypeTag>
struct LinearSolverAbsTolerance<TypeTag, TTag::FvBaseDiscretization>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = -1.;
};
//! Set the history size of the time discretization to 2 (for implicit euler) //! Set the history size of the time discretization to 2 (for implicit euler)
template<class TypeTag> template<class TypeTag>

View File

@ -74,7 +74,12 @@ SET_TYPE_PROP(FlashModel, FlashSolver,
GetPropType<TypeTag, Properties::FluidSystem>>); GetPropType<TypeTag, Properties::FluidSystem>>);
//! Let the flash solver choose its tolerance by default //! Let the flash solver choose its tolerance by default
SET_SCALAR_PROP(FlashModel, FlashTolerance, -1.0); template<class TypeTag>
struct FlashTolerance<TypeTag, TTag::FlashModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = -1.0;
};
//! the Model property //! the Model property
template<class TypeTag> template<class TypeTag>

View File

@ -122,11 +122,26 @@ template<class TypeTag>
struct Indices<TypeTag, TTag::NcpModel> { using type = Opm::NcpIndices<TypeTag, 0>; }; struct Indices<TypeTag, TTag::NcpModel> { using type = Opm::NcpIndices<TypeTag, 0>; };
//! The unmodified weight for the pressure primary variable //! The unmodified weight for the pressure primary variable
SET_SCALAR_PROP(NcpModel, NcpPressureBaseWeight, 1.0); template<class TypeTag>
struct NcpPressureBaseWeight<TypeTag, TTag::NcpModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
//! The weight for the saturation primary variables //! The weight for the saturation primary variables
SET_SCALAR_PROP(NcpModel, NcpSaturationsBaseWeight, 1.0); template<class TypeTag>
struct NcpSaturationsBaseWeight<TypeTag, TTag::NcpModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
//! The unmodified weight for the fugacity primary variables //! The unmodified weight for the fugacity primary variables
SET_SCALAR_PROP(NcpModel, NcpFugacitiesBaseWeight, 1.0e-6); template<class TypeTag>
struct NcpFugacitiesBaseWeight<TypeTag, TTag::NcpModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0e-6;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -130,10 +130,20 @@ template<class TypeTag>
struct NewtonWriteConvergence<TypeTag, TTag::NewtonMethod> { static constexpr bool value = false; }; struct NewtonWriteConvergence<TypeTag, TTag::NewtonMethod> { static constexpr bool value = false; };
template<class TypeTag> template<class TypeTag>
struct NewtonVerbose<TypeTag, TTag::NewtonMethod> { static constexpr bool value = true; }; struct NewtonVerbose<TypeTag, TTag::NewtonMethod> { static constexpr bool value = true; };
SET_SCALAR_PROP(NewtonMethod, NewtonTolerance, 1e-8); template<class TypeTag>
struct NewtonTolerance<TypeTag, TTag::NewtonMethod>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e-8;
};
// set the abortion tolerace to some very large value. if not // set the abortion tolerace to some very large value. if not
// overwritten at run-time this basically disables abortions // overwritten at run-time this basically disables abortions
SET_SCALAR_PROP(NewtonMethod, NewtonMaxError, 1e100); template<class TypeTag>
struct NewtonMaxError<TypeTag, TTag::NewtonMethod>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e100;
};
template<class TypeTag> template<class TypeTag>
struct NewtonTargetIterations<TypeTag, TTag::NewtonMethod> { static constexpr int value = 10; }; struct NewtonTargetIterations<TypeTag, TTag::NewtonMethod> { static constexpr int value = 10; };
template<class TypeTag> template<class TypeTag>

View File

@ -120,13 +120,28 @@ template<class TypeTag>
struct EnableDiffusion<TypeTag, TTag::PvsModel> { static constexpr bool value = false; }; struct EnableDiffusion<TypeTag, TTag::PvsModel> { static constexpr bool value = false; };
//! The basis value for the weight of the pressure primary variable //! The basis value for the weight of the pressure primary variable
SET_SCALAR_PROP(PvsModel, PvsPressureBaseWeight, 1.0); template<class TypeTag>
struct PvsPressureBaseWeight<TypeTag, TTag::PvsModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
//! The basis value for the weight of the saturation primary variables //! The basis value for the weight of the saturation primary variables
SET_SCALAR_PROP(PvsModel, PvsSaturationsBaseWeight, 1.0); template<class TypeTag>
struct PvsSaturationsBaseWeight<TypeTag, TTag::PvsModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
//! The basis value for the weight of the mole fraction primary variables //! The basis value for the weight of the mole fraction primary variables
SET_SCALAR_PROP(PvsModel, PvsMoleFractionsBaseWeight, 1.0); template<class TypeTag>
struct PvsMoleFractionsBaseWeight<TypeTag, TTag::PvsModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
} // namespace Opm::Properties } // namespace Opm::Properties

View File

@ -244,13 +244,28 @@ template<class TypeTag>
struct PrintParameters<TypeTag, TTag::NumericModel> { static constexpr int value = 2; }; struct PrintParameters<TypeTag, TTag::NumericModel> { static constexpr int value = 2; };
//! The default value for the simulation's end time //! The default value for the simulation's end time
SET_SCALAR_PROP(NumericModel, EndTime, -1e35); 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
SET_SCALAR_PROP(NumericModel, InitialTimeStepSize, -1e35); template<class TypeTag>
struct InitialTimeStepSize<TypeTag, TTag::NumericModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = -1e35;
};
//! The default value for the simulation's restart time //! The default value for the simulation's restart time
SET_SCALAR_PROP(NumericModel, RestartTime, -1e35); template<class TypeTag>
struct RestartTime<TypeTag, TTag::NumericModel>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = -1e35;
};
//! By default, do not force any time steps //! By default, do not force any time steps
SET_STRING_PROP(NumericModel, PredeterminedTimeStepsFile, ""); SET_STRING_PROP(NumericModel, PredeterminedTimeStepsFile, "");

View File

@ -60,7 +60,12 @@ struct ParallelAmgLinearSolver { using InheritsFrom = std::tuple<ParallelBaseLin
template<class TypeTag> template<class TypeTag>
struct AmgCoarsenTarget<TypeTag, TTag::ParallelAmgLinearSolver> { static constexpr int value = 5000; }; struct AmgCoarsenTarget<TypeTag, TTag::ParallelAmgLinearSolver> { static constexpr int value = 5000; };
SET_SCALAR_PROP(ParallelAmgLinearSolver, LinearSolverMaxError, 1e7); template<class TypeTag>
struct LinearSolverMaxError<TypeTag, TTag::ParallelAmgLinearSolver>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e7;
};
SET_TYPE_PROP(ParallelAmgLinearSolver, LinearSolverBackend, SET_TYPE_PROP(ParallelAmgLinearSolver, LinearSolverBackend,
Opm::Linear::ParallelAmgBackend<TypeTag>); Opm::Linear::ParallelAmgBackend<TypeTag>);

View File

@ -392,7 +392,12 @@ template<class TypeTag>
struct LinearSolverVerbosity<TypeTag, TTag::ParallelBaseLinearSolver> { static constexpr int value = 0; }; struct LinearSolverVerbosity<TypeTag, TTag::ParallelBaseLinearSolver> { static constexpr int value = 0; };
//! set the preconditioner relaxation parameter to 1.0 by default //! set the preconditioner relaxation parameter to 1.0 by default
SET_SCALAR_PROP(ParallelBaseLinearSolver, PreconditionerRelaxation, 1.0); template<class TypeTag>
struct PreconditionerRelaxation<TypeTag, TTag::ParallelBaseLinearSolver>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1.0;
};
//! set the preconditioner order to 0 by default //! set the preconditioner order to 0 by default
template<class TypeTag> template<class TypeTag>

View File

@ -52,7 +52,12 @@ SET_TYPE_PROP(ParallelBiCGStabLinearSolver,
LinearSolverBackend, LinearSolverBackend,
Opm::Linear::ParallelBiCGStabSolverBackend<TypeTag>); Opm::Linear::ParallelBiCGStabSolverBackend<TypeTag>);
SET_SCALAR_PROP(ParallelBiCGStabLinearSolver, LinearSolverMaxError, 1e7); template<class TypeTag>
struct LinearSolverMaxError<TypeTag, TTag::ParallelBiCGStabLinearSolver>
{
using type = GetPropType<TypeTag, Scalar>;
static constexpr type value = 1e7;
};
} // namespace Opm::Properties } // namespace Opm::Properties