mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
changed: remove SET_BOOL_PROP macro usage
This commit is contained in:
38
ebos/ebos.hh
38
ebos/ebos.hh
@@ -55,7 +55,10 @@ SET_TYPE_PROP(EbosTypeTag, Problem, Opm::EbosProblem<TypeTag>);
|
|||||||
// Enable experimental features for ebos: ebos is the research simulator of the OPM
|
// Enable experimental features for ebos: ebos is the research simulator of the OPM
|
||||||
// project. If you're looking for a more stable "production quality" simulator, consider
|
// project. If you're looking for a more stable "production quality" simulator, consider
|
||||||
// using `flow`
|
// using `flow`
|
||||||
SET_BOOL_PROP(EbosTypeTag, EnableExperiments, true);
|
template<class TypeTag>
|
||||||
|
struct EnableExperiments<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// use flow's well model for now
|
// use flow's well model for now
|
||||||
SET_TYPE_PROP(EbosTypeTag, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
SET_TYPE_PROP(EbosTypeTag, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
||||||
@@ -63,15 +66,33 @@ SET_TYPE_PROP(EbosTypeTag, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
|||||||
// currently, ebos uses the non-multisegment well model by default to avoid
|
// currently, ebos uses the non-multisegment well model by default to avoid
|
||||||
// regressions. the --use-multisegment-well=true|false command line parameter is still
|
// regressions. the --use-multisegment-well=true|false command line parameter is still
|
||||||
// available in ebos, but hidden from view.
|
// available in ebos, but hidden from view.
|
||||||
SET_BOOL_PROP(EbosTypeTag, UseMultisegmentWell, false);
|
template<class TypeTag>
|
||||||
|
struct UseMultisegmentWell<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// set some properties that are only required by the well model
|
// set some properties that are only required by the well model
|
||||||
SET_BOOL_PROP(EbosTypeTag, MatrixAddWellContributions, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EbosTypeTag, EnableTerminalOutput, false);
|
struct MatrixAddWellContributions<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableTerminalOutput<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// flow's well model only works with surface volumes
|
// flow's well model only works with surface volumes
|
||||||
SET_BOOL_PROP(EbosTypeTag, BlackoilConserveSurfaceVolume, true);
|
template<class TypeTag>
|
||||||
|
struct BlackoilConserveSurfaceVolume<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// the values for the residual are for the whole cell instead of for a cubic meter of the cell
|
// the values for the residual are for the whole cell instead of for a cubic meter of the cell
|
||||||
SET_BOOL_PROP(EbosTypeTag, UseVolumetricResidual, false);
|
template<class TypeTag>
|
||||||
|
struct UseVolumetricResidual<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// by default use flow's aquifer model for now
|
// by default use flow's aquifer model for now
|
||||||
SET_TYPE_PROP(EbosTypeTag, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
SET_TYPE_PROP(EbosTypeTag, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
||||||
@@ -111,7 +132,10 @@ SET_INT_PROP(EbosTypeTag, ThreadsPerProcess, 2);
|
|||||||
|
|
||||||
// By default, ebos accepts the result of the time integration unconditionally if the
|
// By default, ebos accepts the result of the time integration unconditionally if the
|
||||||
// smallest time step size is reached.
|
// smallest time step size is reached.
|
||||||
SET_BOOL_PROP(EbosTypeTag, ContinueOnConvergenceError, true);
|
template<class TypeTag>
|
||||||
|
struct ContinueOnConvergenceError<TypeTag, TTag::EbosTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ struct EbosBrineTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the brine extension of the black oil model
|
// enable the brine extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosBrineTypeTag, EnableBrine, true);
|
template<class TypeTag>
|
||||||
|
struct EnableBrine<TypeTag, TTag::EbosBrineTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ struct EbosFoamTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the foam extension of the black oil model
|
// enable the foam extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosFoamTypeTag, EnableFoam, true);
|
template<class TypeTag>
|
||||||
|
struct EnableFoam<TypeTag, TTag::EbosFoamTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,10 @@ struct EbosOilWaterPolymerTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the polymer extension of the black oil model
|
// enable the polymer extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosOilWaterPolymerTypeTag, EnablePolymer, true);
|
template<class TypeTag>
|
||||||
|
struct EnablePolymer<TypeTag, TTag::EbosOilWaterPolymerTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
//! The indices indices which only enable oil and water
|
//! The indices indices which only enable oil and water
|
||||||
SET_PROP(EbosOilWaterPolymerTypeTag, Indices)
|
SET_PROP(EbosOilWaterPolymerTypeTag, Indices)
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ struct EbosPolymerTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the polymer extension of the black oil model
|
// enable the polymer extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosPolymerTypeTag, EnablePolymer, true);
|
template<class TypeTag>
|
||||||
|
struct EnablePolymer<TypeTag, TTag::EbosPolymerTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ struct EbosSolventTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the solvent extension of the black oil model
|
// enable the solvent extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosSolventTypeTag, EnableSolvent, true);
|
template<class TypeTag>
|
||||||
|
struct EnableSolvent<TypeTag, TTag::EbosSolventTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,10 @@ struct EbosThermalTypeTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enable the energy extension of the black oil model
|
// enable the energy extension of the black oil model
|
||||||
SET_BOOL_PROP(EbosThermalTypeTag, EnableEnergy, true);
|
template<class TypeTag>
|
||||||
|
struct EnableEnergy<TypeTag, TTag::EbosThermalTypeTag> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -85,11 +85,23 @@ NEW_PROP_TAG(OwnerCellsFirst);
|
|||||||
SET_STRING_PROP(EclBaseVanguard, IgnoreKeywords, "");
|
SET_STRING_PROP(EclBaseVanguard, IgnoreKeywords, "");
|
||||||
SET_STRING_PROP(EclBaseVanguard, EclDeckFileName, "");
|
SET_STRING_PROP(EclBaseVanguard, EclDeckFileName, "");
|
||||||
SET_INT_PROP(EclBaseVanguard, EclOutputInterval, -1); // use the deck-provided value
|
SET_INT_PROP(EclBaseVanguard, EclOutputInterval, -1); // use the deck-provided value
|
||||||
SET_BOOL_PROP(EclBaseVanguard, EnableOpmRstFile, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclBaseVanguard, EclStrictParsing, false);
|
struct EnableOpmRstFile<TypeTag, TTag::EclBaseVanguard> {
|
||||||
SET_BOOL_PROP(EclBaseVanguard, SchedRestart, false);
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EclStrictParsing<TypeTag, TTag::EclBaseVanguard> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct SchedRestart<TypeTag, TTag::EclBaseVanguard> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_INT_PROP(EclBaseVanguard, EdgeWeightsMethod, 1);
|
SET_INT_PROP(EclBaseVanguard, EdgeWeightsMethod, 1);
|
||||||
SET_BOOL_PROP(EclBaseVanguard, OwnerCellsFirst, true);
|
template<class TypeTag>
|
||||||
|
struct OwnerCellsFirst<TypeTag, TTag::EclBaseVanguard> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,10 @@ struct EclOutputBlackOil {};
|
|||||||
|
|
||||||
NEW_PROP_TAG(ForceDisableFluidInPlaceOutput);
|
NEW_PROP_TAG(ForceDisableFluidInPlaceOutput);
|
||||||
|
|
||||||
SET_BOOL_PROP(EclOutputBlackOil, ForceDisableFluidInPlaceOutput, false);
|
template<class TypeTag>
|
||||||
|
struct ForceDisableFluidInPlaceOutput<TypeTag, TTag::EclOutputBlackOil> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -248,16 +248,28 @@ SET_TYPE_PROP(EclBaseProblem, EclAquiferModel, Opm::EclBaseAquiferModel<TypeTag>
|
|||||||
SET_TYPE_PROP(EclBaseProblem, EclWellModel, EclWellManager<TypeTag>);
|
SET_TYPE_PROP(EclBaseProblem, EclWellModel, EclWellManager<TypeTag>);
|
||||||
|
|
||||||
// Enable aquifers by default in experimental mode
|
// Enable aquifers by default in experimental mode
|
||||||
SET_BOOL_PROP(EclBaseProblem, EclEnableAquifers, true);
|
template<class TypeTag>
|
||||||
|
struct EclEnableAquifers<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// Enable gravity
|
// Enable gravity
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableGravity, true);
|
template<class TypeTag>
|
||||||
|
struct EnableGravity<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// only write the solutions for the report steps to disk
|
// only write the solutions for the report steps to disk
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableWriteAllSolutions, false);
|
template<class TypeTag>
|
||||||
|
struct EnableWriteAllSolutions<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// disable API tracking
|
// disable API tracking
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableApiTracking, false);
|
template<class TypeTag>
|
||||||
|
struct EnableApiTracking<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// The default for the end time of the simulation [s]
|
// The default for the end time of the simulation [s]
|
||||||
//
|
//
|
||||||
@@ -313,26 +325,44 @@ SET_INT_PROP(EclBaseProblem, NewtonMaxIterations, 14);
|
|||||||
SET_INT_PROP(EclBaseProblem, NewtonTargetIterations, 6);
|
SET_INT_PROP(EclBaseProblem, NewtonTargetIterations, 6);
|
||||||
|
|
||||||
// Disable the VTK output by default for this problem ...
|
// Disable the VTK output by default for this problem ...
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableVtkOutput, false);
|
template<class TypeTag>
|
||||||
|
struct EnableVtkOutput<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// ... but enable the ECL output by default
|
// ... but enable the ECL output by default
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableEclOutput, true);
|
template<class TypeTag>
|
||||||
|
struct EnableEclOutput<TypeTag,TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// If available, write the ECL output in a non-blocking manner
|
// If available, write the ECL output in a non-blocking manner
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableAsyncEclOutput, true);
|
template<class TypeTag>
|
||||||
|
struct EnableAsyncEclOutput<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// By default, use single precision for the ECL formated results
|
// By default, use single precision for the ECL formated results
|
||||||
SET_BOOL_PROP(EclBaseProblem, EclOutputDoublePrecision, false);
|
template<class TypeTag>
|
||||||
|
struct EclOutputDoublePrecision<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// The default location for the ECL output files
|
// The default location for the ECL output files
|
||||||
SET_STRING_PROP(EclBaseProblem, OutputDir, ".");
|
SET_STRING_PROP(EclBaseProblem, OutputDir, ".");
|
||||||
|
|
||||||
// the cache for intensive quantities can be used for ECL problems and also yields a
|
// the cache for intensive quantities can be used for ECL problems and also yields a
|
||||||
// decent speedup...
|
// decent speedup...
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableIntensiveQuantityCache, true);
|
template<class TypeTag>
|
||||||
|
struct EnableIntensiveQuantityCache<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// the cache for the storage term can also be used and also yields a decent speedup
|
// the cache for the storage term can also be used and also yields a decent speedup
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableStorageCache, true);
|
template<class TypeTag>
|
||||||
|
struct EnableStorageCache<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// Use the "velocity module" which uses the Eclipse "NEWTRAN" transmissibilities
|
// Use the "velocity module" which uses the Eclipse "NEWTRAN" transmissibilities
|
||||||
SET_TYPE_PROP(EclBaseProblem, FluxModule, Opm::EclTransFluxModule<TypeTag>);
|
SET_TYPE_PROP(EclBaseProblem, FluxModule, Opm::EclTransFluxModule<TypeTag>);
|
||||||
@@ -351,36 +381,67 @@ SET_INT_PROP(EclBaseProblem, RestartWritingInterval, 0xffffff); // disable
|
|||||||
// Drift compensation is an experimental feature, i.e., systematic errors in the
|
// Drift compensation is an experimental feature, i.e., systematic errors in the
|
||||||
// conservation quantities are only compensated for
|
// conservation quantities are only compensated for
|
||||||
// as default if experimental mode is enabled.
|
// as default if experimental mode is enabled.
|
||||||
SET_BOOL_PROP(EclBaseProblem,
|
template<class TypeTag>
|
||||||
EclEnableDriftCompensation,
|
struct EclEnableDriftCompensation<TypeTag, TTag::EclBaseProblem> {
|
||||||
getPropValue<TypeTag, Properties::EnableExperiments>());
|
static constexpr bool value = getPropValue<TypeTag, Properties::EnableExperiments>();
|
||||||
|
};
|
||||||
|
|
||||||
// By default, we enable the debugging checks if we're compiled in debug mode
|
// By default, we enable the debugging checks if we're compiled in debug mode
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableDebuggingChecks, true);
|
template<class TypeTag>
|
||||||
|
struct EnableDebuggingChecks<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// store temperature (but do not conserve energy, as long as EnableEnergy is false)
|
// store temperature (but do not conserve energy, as long as EnableEnergy is false)
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableTemperature, true);
|
template<class TypeTag>
|
||||||
|
struct EnableTemperature<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
// disable all extensions supported by black oil model. this should not really be
|
// disable all extensions supported by black oil model. this should not really be
|
||||||
// necessary but it makes things a bit more explicit
|
// necessary but it makes things a bit more explicit
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnablePolymer, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableSolvent, false);
|
struct EnablePolymer<TypeTag, TTag::EclBaseProblem> {
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableEnergy, false);
|
static constexpr bool value = false;
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableFoam, false);
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableSolvent<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableEnergy<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableFoam<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// disable thermal flux boundaries by default
|
// disable thermal flux boundaries by default
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableThermalFluxBoundaries, false);
|
template<class TypeTag>
|
||||||
|
struct EnableThermalFluxBoundaries<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableTracerModel, false);
|
template<class TypeTag>
|
||||||
|
struct EnableTracerModel<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// By default, simulators derived from the EclBaseProblem are production simulators,
|
// By default, simulators derived from the EclBaseProblem are production simulators,
|
||||||
// i.e., experimental features must be explicitly enabled at compile time
|
// i.e., experimental features must be explicitly enabled at compile time
|
||||||
SET_BOOL_PROP(EclBaseProblem, EnableExperiments, false);
|
template<class TypeTag>
|
||||||
|
struct EnableExperiments<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
// set defaults for the time stepping parameters
|
// set defaults for the time stepping parameters
|
||||||
SET_SCALAR_PROP(EclBaseProblem, EclMaxTimeStepSizeAfterWellEvent, 3600*24*365.25);
|
SET_SCALAR_PROP(EclBaseProblem, EclMaxTimeStepSizeAfterWellEvent, 3600*24*365.25);
|
||||||
SET_SCALAR_PROP(EclBaseProblem, EclRestartShrinkFactor, 3);
|
SET_SCALAR_PROP(EclBaseProblem, EclRestartShrinkFactor, 3);
|
||||||
SET_BOOL_PROP(EclBaseProblem, EclEnableTuning, false);
|
template<class TypeTag>
|
||||||
|
struct EclEnableTuning<TypeTag, TTag::EclBaseProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
SET_STRING_PROP(EclBaseProblem, OutputMode, "all");
|
SET_STRING_PROP(EclBaseProblem, OutputMode, "all");
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,10 @@ struct VtkEclTracer {};
|
|||||||
NEW_PROP_TAG(VtkWriteEclTracerConcentration);
|
NEW_PROP_TAG(VtkWriteEclTracerConcentration);
|
||||||
|
|
||||||
// set default values for what quantities to output
|
// set default values for what quantities to output
|
||||||
SET_BOOL_PROP(VtkEclTracer, VtkWriteEclTracerConcentration, false);
|
template<class TypeTag>
|
||||||
|
struct VtkWriteEclTracerConcentration<TypeTag, TTag::VtkEclTracer> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -32,12 +32,21 @@ namespace Opm {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, MatrixAddWellContributions, true);
|
template<class TypeTag>
|
||||||
|
struct MatrixAddWellContributions<TypeTag, TTag::EclFlowProblemSimple> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
SET_INT_PROP(EclFlowProblemSimple, LinearSolverVerbosity,0);
|
SET_INT_PROP(EclFlowProblemSimple, LinearSolverVerbosity,0);
|
||||||
SET_SCALAR_PROP(EclFlowProblemSimple, LinearSolverReduction, 1e-2);
|
SET_SCALAR_PROP(EclFlowProblemSimple, LinearSolverReduction, 1e-2);
|
||||||
SET_INT_PROP(EclFlowProblemSimple, LinearSolverMaxIter, 100);
|
SET_INT_PROP(EclFlowProblemSimple, LinearSolverMaxIter, 100);
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, UseAmg, true);//probably not used
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, UseCpr, true);
|
struct UseAmg<TypeTag, TTag::EclFlowProblemSimple> { // probably not used
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseCpr<TypeTag, TTag::EclFlowProblemSimple> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
SET_INT_PROP(EclFlowProblemSimple, CprMaxEllIter, 1);
|
SET_INT_PROP(EclFlowProblemSimple, CprMaxEllIter, 1);
|
||||||
SET_INT_PROP(EclFlowProblemSimple, CprEllSolvetype, 3);
|
SET_INT_PROP(EclFlowProblemSimple, CprEllSolvetype, 3);
|
||||||
SET_INT_PROP(EclFlowProblemSimple, CprReuseSetup, 3);
|
SET_INT_PROP(EclFlowProblemSimple, CprReuseSetup, 3);
|
||||||
@@ -66,12 +75,24 @@ namespace Opm {
|
|||||||
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::Linear::SuperLUBackend<TypeTag>)//not work
|
//SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::Linear::SuperLUBackend<TypeTag>)//not work
|
||||||
//SET_TAG_PROP(EclFlowProblem, FluidState, Opm::BlackOilFluidState);
|
//SET_TAG_PROP(EclFlowProblem, FluidState, Opm::BlackOilFluidState);
|
||||||
SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::ISTLSolverEbosFlexible<TypeTag>);
|
SET_TYPE_PROP(EclFlowProblemSimple, LinearSolverBackend, Opm::ISTLSolverEbosFlexible<TypeTag>);
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, EnableStorageCache, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, EnableIntensiveQuantityCache, true);
|
struct EnableStorageCache<TypeTag, TTag::EclFlowProblemSimple> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableIntensiveQuantityCache<TypeTag, TTag::EclFlowProblemSimple> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
//SET_INT_PROP(EclFlowProblemSimple, NumWellAdjoint, 1);
|
//SET_INT_PROP(EclFlowProblemSimple, NumWellAdjoint, 1);
|
||||||
//SET_BOOL_PROP(EclFlowProblem, EnableStorageCache, true);
|
// template<class TypeTag>
|
||||||
//SET_BOOL_PROP(EclFlowProblem, EnableIntensiveQuantityCache, true);
|
// struct EnableStorageCache<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
// static constexpr bool value = true;
|
||||||
|
// };
|
||||||
|
// template<class TypeTag>
|
||||||
|
// struct EnableIntensiveQuantityCache<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
// static constexpr bool value = true;
|
||||||
|
// };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ struct EclFlowBrineProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowBrineProblem, EnableBrine, true);
|
template<class TypeTag>
|
||||||
|
struct EnableBrine<TypeTag, TTag::EclFlowBrineProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
}}
|
}}
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ struct EclFlowEnergyProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowEnergyProblem, EnableEnergy, true);
|
template<class TypeTag>
|
||||||
|
struct EnableEnergy<TypeTag, TTag::EclFlowEnergyProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
}}
|
}}
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ struct EclFlowFoamProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowFoamProblem, EnableFoam, true);
|
template<class TypeTag>
|
||||||
|
struct EnableFoam<TypeTag, TTag::EclFlowFoamProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
}}
|
}}
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|||||||
@@ -41,7 +41,10 @@ struct EclFlowOilWaterBrineProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowOilWaterBrineProblem, EnableBrine, true);
|
template<class TypeTag>
|
||||||
|
struct EnableBrine<TypeTag, TTag::EclFlowOilWaterBrineProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
//! The indices required by the model
|
//! The indices required by the model
|
||||||
SET_PROP(EclFlowOilWaterBrineProblem, Indices)
|
SET_PROP(EclFlowOilWaterBrineProblem, Indices)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,7 +41,10 @@ struct EclFlowOilWaterPolymerProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowOilWaterPolymerProblem, EnablePolymer, true);
|
template<class TypeTag>
|
||||||
|
struct EnablePolymer<TypeTag, TTag::EclFlowOilWaterPolymerProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
//! The indices required by the model
|
//! The indices required by the model
|
||||||
//! The indices required by the model
|
//! The indices required by the model
|
||||||
SET_PROP(EclFlowOilWaterPolymerProblem, Indices)
|
SET_PROP(EclFlowOilWaterPolymerProblem, Indices)
|
||||||
|
|||||||
@@ -41,8 +41,14 @@ struct EclFlowOilWaterPolymerInjectivityProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowOilWaterPolymerInjectivityProblem, EnablePolymer, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowOilWaterPolymerInjectivityProblem, EnablePolymerMW, true);
|
struct EnablePolymer<TypeTag, TTag::EclFlowOilWaterPolymerInjectivityProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnablePolymerMW<TypeTag, TTag::EclFlowOilWaterPolymerInjectivityProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
//! The indices required by the model
|
//! The indices required by the model
|
||||||
// For this case, there will be two primary variables introduced for the polymer
|
// For this case, there will be two primary variables introduced for the polymer
|
||||||
// polymer concentration and polymer molecular weight
|
// polymer concentration and polymer molecular weight
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ struct EclFlowPolymerProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowPolymerProblem, EnablePolymer, true);
|
template<class TypeTag>
|
||||||
|
struct EnablePolymer<TypeTag, TTag::EclFlowPolymerProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
}}
|
}}
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|||||||
@@ -36,7 +36,10 @@ struct EclFlowSolventProblem {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowSolventProblem, EnableSolvent, true);
|
template<class TypeTag>
|
||||||
|
struct EnableSolvent<TypeTag, TTag::EclFlowSolventProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
}}
|
}}
|
||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|||||||
@@ -29,7 +29,10 @@ struct EclFlowProblemSimple {
|
|||||||
using InheritsFrom = std::tuple<EclFlowProblem>;
|
using InheritsFrom = std::tuple<EclFlowProblem>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(EclFlowProblemSimple, EnableEnergy, true);
|
template<class TypeTag>
|
||||||
|
struct EnableEnergy<TypeTag, TTag::EclFlowProblemSimple> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
//! The indices required by the model
|
//! The indices required by the model
|
||||||
SET_PROP(EclFlowProblemSimple, Indices)
|
SET_PROP(EclFlowProblemSimple, Indices)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -78,21 +78,48 @@ struct EclFlowProblem {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_STRING_PROP(EclFlowProblem, OutputDir, "");
|
SET_STRING_PROP(EclFlowProblem, OutputDir, "");
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableDebuggingChecks, false);
|
template<class TypeTag>
|
||||||
|
struct EnableDebuggingChecks<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
// default in flow is to formulate the equations in surface volumes
|
// default in flow is to formulate the equations in surface volumes
|
||||||
SET_BOOL_PROP(EclFlowProblem, BlackoilConserveSurfaceVolume, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblem, UseVolumetricResidual, false);
|
struct BlackoilConserveSurfaceVolume<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseVolumetricResidual<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
SET_TYPE_PROP(EclFlowProblem, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
SET_TYPE_PROP(EclFlowProblem, EclAquiferModel, Opm::BlackoilAquiferModel<TypeTag>);
|
||||||
|
|
||||||
// disable all extensions supported by black oil model. this should not really be
|
// disable all extensions supported by black oil model. this should not really be
|
||||||
// necessary but it makes things a bit more explicit
|
// necessary but it makes things a bit more explicit
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnablePolymer, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableSolvent, false);
|
struct EnablePolymer<TypeTag, TTag::EclFlowProblem> {
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableTemperature, true);
|
static constexpr bool value = false;
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableEnergy, false);
|
};
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableFoam, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableBrine, false);
|
struct EnableSolvent<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableTemperature<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableEnergy<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableFoam<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableBrine<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
SET_TYPE_PROP(EclFlowProblem, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
SET_TYPE_PROP(EclFlowProblem, EclWellModel, Opm::BlackoilWellModel<TypeTag>);
|
||||||
SET_TAG_PROP(EclFlowProblem, LinearSolverSplice, FlowIstlSolver);
|
SET_TAG_PROP(EclFlowProblem, LinearSolverSplice, FlowIstlSolver);
|
||||||
|
|||||||
@@ -72,22 +72,46 @@ SET_SCALAR_PROP(FlowModelParameters, ToleranceCnvRelaxed, 1e9);
|
|||||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceWells, 1e-4);
|
SET_SCALAR_PROP(FlowModelParameters, ToleranceWells, 1e-4);
|
||||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceWellControl, 1e-7);
|
SET_SCALAR_PROP(FlowModelParameters, ToleranceWellControl, 1e-7);
|
||||||
SET_INT_PROP(FlowModelParameters, MaxWelleqIter, 30);
|
SET_INT_PROP(FlowModelParameters, MaxWelleqIter, 30);
|
||||||
SET_BOOL_PROP(FlowModelParameters, UseMultisegmentWell, true);
|
template<class TypeTag>
|
||||||
|
struct UseMultisegmentWell<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
SET_SCALAR_PROP(FlowModelParameters, MaxSinglePrecisionDays, 20.0);
|
SET_SCALAR_PROP(FlowModelParameters, MaxSinglePrecisionDays, 20.0);
|
||||||
SET_INT_PROP(FlowModelParameters, MaxStrictIter, 8);
|
SET_INT_PROP(FlowModelParameters, MaxStrictIter, 8);
|
||||||
SET_BOOL_PROP(FlowModelParameters, SolveWelleqInitially, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(FlowModelParameters, UpdateEquationsScaling, false);
|
struct SolveWelleqInitially<TypeTag, TTag::FlowModelParameters> {
|
||||||
SET_BOOL_PROP(FlowModelParameters, UseUpdateStabilization, true);
|
static constexpr bool value = true;
|
||||||
SET_BOOL_PROP(FlowModelParameters, MatrixAddWellContributions, false);
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UpdateEquationsScaling<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseUpdateStabilization<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct MatrixAddWellContributions<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_SCALAR_PROP(FlowModelParameters, TolerancePressureMsWells, 0.01*1e5);
|
SET_SCALAR_PROP(FlowModelParameters, TolerancePressureMsWells, 0.01*1e5);
|
||||||
SET_SCALAR_PROP(FlowModelParameters, MaxPressureChangeMsWells, 10*1e5);
|
SET_SCALAR_PROP(FlowModelParameters, MaxPressureChangeMsWells, 10*1e5);
|
||||||
SET_BOOL_PROP(FlowModelParameters, UseInnerIterationsMsWells, true);
|
template<class TypeTag>
|
||||||
|
struct UseInnerIterationsMsWells<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
SET_INT_PROP(FlowModelParameters, MaxInnerIterMsWells, 100);
|
SET_INT_PROP(FlowModelParameters, MaxInnerIterMsWells, 100);
|
||||||
SET_BOOL_PROP(FlowModelParameters, UseInnerIterationsWells, false);
|
template<class TypeTag>
|
||||||
|
struct UseInnerIterationsWells<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_INT_PROP(FlowModelParameters, MaxInnerIterWells, 50);
|
SET_INT_PROP(FlowModelParameters, MaxInnerIterWells, 50);
|
||||||
SET_INT_PROP(FlowModelParameters, StrictInnerIterMsWells, 40);
|
SET_INT_PROP(FlowModelParameters, StrictInnerIterMsWells, 40);
|
||||||
SET_SCALAR_PROP(FlowModelParameters, RegularizationFactorMsw, 1);
|
SET_SCALAR_PROP(FlowModelParameters, RegularizationFactorMsw, 1);
|
||||||
SET_BOOL_PROP(FlowModelParameters, EnableWellOperabilityCheck, true);
|
template<class TypeTag>
|
||||||
|
struct EnableWellOperabilityCheck<TypeTag, TTag::FlowModelParameters> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
SET_SCALAR_PROP(FlowModelParameters, RelaxedFlowTolInnerIterMsw, 1);
|
SET_SCALAR_PROP(FlowModelParameters, RelaxedFlowTolInnerIterMsw, 1);
|
||||||
SET_SCALAR_PROP(FlowModelParameters, RelaxedPressureTolInnerIterMsw, 0.5e5);
|
SET_SCALAR_PROP(FlowModelParameters, RelaxedPressureTolInnerIterMsw, 0.5e5);
|
||||||
|
|||||||
@@ -57,7 +57,10 @@ NEW_PROP_TAG(EnableLoggingFalloutWarning);
|
|||||||
// TODO: enumeration parameters. we use strings for now.
|
// TODO: enumeration parameters. we use strings for now.
|
||||||
SET_STRING_PROP(EclFlowProblem, EnableDryRun, "auto");
|
SET_STRING_PROP(EclFlowProblem, EnableDryRun, "auto");
|
||||||
// Do not merge parallel output files or warn about them
|
// Do not merge parallel output files or warn about them
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableLoggingFalloutWarning, false);
|
template<class TypeTag>
|
||||||
|
struct EnableLoggingFalloutWarning<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_INT_PROP(EclFlowProblem, OutputInterval, 1);
|
SET_INT_PROP(EclFlowProblem, OutputInterval, 1);
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|||||||
@@ -39,9 +39,18 @@ namespace Opm::Properties {
|
|||||||
NEW_PROP_TAG(EnableAdaptiveTimeStepping);
|
NEW_PROP_TAG(EnableAdaptiveTimeStepping);
|
||||||
NEW_PROP_TAG(EnableTuning);
|
NEW_PROP_TAG(EnableTuning);
|
||||||
|
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableTerminalOutput, true);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableAdaptiveTimeStepping, true);
|
struct EnableTerminalOutput<TypeTag, TTag::EclFlowProblem> {
|
||||||
SET_BOOL_PROP(EclFlowProblem, EnableTuning, false);
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableAdaptiveTimeStepping<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableTuning<TypeTag, TTag::EclFlowProblem> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
@@ -80,19 +80,49 @@ SET_INT_PROP(FlowIstlSolverParams, LinearSolverRestart, 40);
|
|||||||
SET_INT_PROP(FlowIstlSolverParams, FlowLinearSolverVerbosity, 0);
|
SET_INT_PROP(FlowIstlSolverParams, FlowLinearSolverVerbosity, 0);
|
||||||
SET_INT_PROP(FlowIstlSolverParams, IluFillinLevel, 0);
|
SET_INT_PROP(FlowIstlSolverParams, IluFillinLevel, 0);
|
||||||
SET_STRING_PROP(FlowIstlSolverParams, MiluVariant, "ILU");
|
SET_STRING_PROP(FlowIstlSolverParams, MiluVariant, "ILU");
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, IluRedblack, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, IluReorderSpheres, false);
|
struct IluRedblack<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, UseGmres, false);
|
static constexpr bool value = false;
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, LinearSolverRequireFullSparsityPattern, false);
|
};
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, LinearSolverIgnoreConvergenceFailure, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, UseAmg, false);
|
struct IluReorderSpheres<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, UseCpr, false);
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseGmres<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct LinearSolverRequireFullSparsityPattern<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct LinearSolverIgnoreConvergenceFailure<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseAmg<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct UseCpr<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_TYPE_PROP(FlowIstlSolverParams, LinearSolverBackend, Opm::ISTLSolverEbos<TypeTag>);
|
SET_TYPE_PROP(FlowIstlSolverParams, LinearSolverBackend, Opm::ISTLSolverEbos<TypeTag>);
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, PreconditionerAddWellContributions, false);
|
template<class TypeTag>
|
||||||
|
struct PreconditionerAddWellContributions<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_STRING_PROP(FlowIstlSolverParams, SystemStrategy, "none");
|
SET_STRING_PROP(FlowIstlSolverParams, SystemStrategy, "none");
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, ScaleLinearSystem, false);
|
template<class TypeTag>
|
||||||
|
struct ScaleLinearSystem<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_INT_PROP(FlowIstlSolverParams, CprSolverVerbose, 0);
|
SET_INT_PROP(FlowIstlSolverParams, CprSolverVerbose, 0);
|
||||||
SET_BOOL_PROP(FlowIstlSolverParams, CprUseDrs, false);
|
template<class TypeTag>
|
||||||
|
struct CprUseDrs<TypeTag, TTag::FlowIstlSolverParams> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_INT_PROP(FlowIstlSolverParams, CprMaxEllIter, 20);
|
SET_INT_PROP(FlowIstlSolverParams, CprMaxEllIter, 20);
|
||||||
SET_INT_PROP(FlowIstlSolverParams, CprEllSolvetype, 0);
|
SET_INT_PROP(FlowIstlSolverParams, CprEllSolvetype, 0);
|
||||||
SET_INT_PROP(FlowIstlSolverParams, CprReuseSetup, 3);
|
SET_INT_PROP(FlowIstlSolverParams, CprReuseSetup, 3);
|
||||||
|
|||||||
@@ -52,7 +52,10 @@ SET_INT_PROP(FlowTimeSteppingParameters, SolverMaxRestarts, 10);
|
|||||||
SET_INT_PROP(FlowTimeSteppingParameters, SolverVerbosity, 1);
|
SET_INT_PROP(FlowTimeSteppingParameters, SolverVerbosity, 1);
|
||||||
SET_INT_PROP(FlowTimeSteppingParameters, TimeStepVerbosity, 1);
|
SET_INT_PROP(FlowTimeSteppingParameters, TimeStepVerbosity, 1);
|
||||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, InitialTimeStepInDays, 1.0);
|
SET_SCALAR_PROP(FlowTimeSteppingParameters, InitialTimeStepInDays, 1.0);
|
||||||
SET_BOOL_PROP(FlowTimeSteppingParameters, FullTimeStepInitially, false);
|
template<class TypeTag>
|
||||||
|
struct FullTimeStepInitially<TypeTag, TTag::FlowTimeSteppingParameters> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepAfterEventInDays, -1.0);
|
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepAfterEventInDays, -1.0);
|
||||||
SET_STRING_PROP(FlowTimeSteppingParameters, TimeStepControl, "pid");
|
SET_STRING_PROP(FlowTimeSteppingParameters, TimeStepControl, "pid");
|
||||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlTolerance, 1e-1);
|
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlTolerance, 1e-1);
|
||||||
|
|||||||
@@ -82,8 +82,14 @@ struct TestEclOutputTypeTag {
|
|||||||
using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
|
using InheritsFrom = std::tuple<EclBaseProblem, BlackOilModel>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
SET_BOOL_PROP(TestEclOutputTypeTag, EnableGravity, false);
|
template<class TypeTag>
|
||||||
SET_BOOL_PROP(TestEclOutputTypeTag, EnableAsyncEclOutput, false);
|
struct EnableGravity<TypeTag, TTag::TestEclOutputTypeTag> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
template<class TypeTag>
|
||||||
|
struct EnableAsyncEclOutput<TypeTag, TTag::TestEclOutputTypeTag> {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Opm::Properties
|
} // namespace Opm::Properties
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user