mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-07-07 04:53:03 -05:00
remove the Flow
prefixes of parameters only used by flow
this has been requested by [at]atgeirr. Note: The FlowLinearSolverVerbosity, FlowNewtonMaxIterations and FlowNewtonMinIterations parameters are still prefixed because they clashes with parameters registered deeply within eWoms.
This commit is contained in:
parent
9203b614e8
commit
43ac2e36c6
|
@ -223,7 +223,7 @@ add_test_compareECLFiles(CASENAME spe3
|
|||
SIMULATOR flow
|
||||
ABS_TOL ${abs_tol}
|
||||
REL_TOL ${coarse_rel_tol}
|
||||
TEST_ARGS --flow-tolerance-wells=1e-6 --flow-newton-max-iterations=20)
|
||||
TEST_ARGS --tolerance-wells=1e-6 --flow-newton-max-iterations=20)
|
||||
|
||||
add_test_compareECLFiles(CASENAME spe3
|
||||
FILENAME SPE3CASE1
|
||||
|
@ -251,14 +251,14 @@ add_test_compareECLFiles(CASENAME msw_2d_h
|
|||
SIMULATOR flow
|
||||
ABS_TOL ${abs_tol}
|
||||
REL_TOL ${coarse_rel_tol}
|
||||
TEST_ARGS --flow-use-multisegment-well=true)
|
||||
TEST_ARGS --use-multisegment-well=true)
|
||||
|
||||
add_test_compareECLFiles(CASENAME msw_3d_hfa
|
||||
FILENAME 3D_MSW
|
||||
SIMULATOR flow
|
||||
ABS_TOL ${abs_tol}
|
||||
REL_TOL ${rel_tol}
|
||||
TEST_ARGS --flow-use-multisegment-well=true)
|
||||
TEST_ARGS --use-multisegment-well=true)
|
||||
|
||||
add_test_compareECLFiles(CASENAME polymer_oilwater
|
||||
FILENAME 2D_OILWATER_POLYMER
|
||||
|
|
|
@ -126,7 +126,7 @@ int main(int argc, char** argv)
|
|||
|
||||
bool outputCout = false;
|
||||
if (mpiRank == 0)
|
||||
outputCout = EWOMS_GET_PARAM(PreTypeTag, bool, FlowEnableTerminalOutput);
|
||||
outputCout = EWOMS_GET_PARAM(PreTypeTag, bool, EnableTerminalOutput);
|
||||
|
||||
std::string deckFilename = EWOMS_GET_PARAM(PreTypeTag, std::string, EclDeckFileName);
|
||||
typedef typename GET_PROP_TYPE(PreTypeTag, Vanguard) PreVanguard;
|
||||
|
|
|
@ -32,57 +32,57 @@ NEW_TYPE_TAG(FlowModelParameters);
|
|||
NEW_PROP_TAG(Scalar);
|
||||
NEW_PROP_TAG(EclDeckFileName);
|
||||
|
||||
NEW_PROP_TAG(FlowDpMaxRel);
|
||||
NEW_PROP_TAG(FlowDsMax);
|
||||
NEW_PROP_TAG(FlowDrMaxRel);
|
||||
NEW_PROP_TAG(FlowDbphMaxRel);
|
||||
NEW_PROP_TAG(FlowDWellFractionMax);
|
||||
NEW_PROP_TAG(FlowMaxResidualAllowed);
|
||||
NEW_PROP_TAG(FlowToleranceMb);
|
||||
NEW_PROP_TAG(FlowToleranceCnv);
|
||||
NEW_PROP_TAG(FlowToleranceCnvRelaxed);
|
||||
NEW_PROP_TAG(FlowToleranceWells);
|
||||
NEW_PROP_TAG(FlowToleranceWellControl);
|
||||
NEW_PROP_TAG(FlowMaxWelleqIter);
|
||||
NEW_PROP_TAG(FlowUseMultisegmentWell);
|
||||
NEW_PROP_TAG(FlowMaxSinglePrecisionDays);
|
||||
NEW_PROP_TAG(FlowMaxStrictIter);
|
||||
NEW_PROP_TAG(FlowSolveWelleqInitially);
|
||||
NEW_PROP_TAG(FlowUpdateEquationsScaling);
|
||||
NEW_PROP_TAG(FlowUseUpdateStabilization);
|
||||
NEW_PROP_TAG(FlowMatrixAddWellContributions);
|
||||
NEW_PROP_TAG(FlowPreconditionerAddWellContributions);
|
||||
NEW_PROP_TAG(DpMaxRel);
|
||||
NEW_PROP_TAG(DsMax);
|
||||
NEW_PROP_TAG(DrMaxRel);
|
||||
NEW_PROP_TAG(DbphMaxRel);
|
||||
NEW_PROP_TAG(DWellFractionMax);
|
||||
NEW_PROP_TAG(MaxResidualAllowed);
|
||||
NEW_PROP_TAG(ToleranceMb);
|
||||
NEW_PROP_TAG(ToleranceCnv);
|
||||
NEW_PROP_TAG(ToleranceCnvRelaxed);
|
||||
NEW_PROP_TAG(ToleranceWells);
|
||||
NEW_PROP_TAG(ToleranceWellControl);
|
||||
NEW_PROP_TAG(MaxWelleqIter);
|
||||
NEW_PROP_TAG(UseMultisegmentWell);
|
||||
NEW_PROP_TAG(MaxSinglePrecisionDays);
|
||||
NEW_PROP_TAG(MaxStrictIter);
|
||||
NEW_PROP_TAG(SolveWelleqInitially);
|
||||
NEW_PROP_TAG(UpdateEquationsScaling);
|
||||
NEW_PROP_TAG(UseUpdateStabilization);
|
||||
NEW_PROP_TAG(MatrixAddWellContributions);
|
||||
NEW_PROP_TAG(PreconditionerAddWellContributions);
|
||||
|
||||
// parameters for multisegment wells
|
||||
NEW_PROP_TAG(FlowTolerancePressureMsWells);
|
||||
NEW_PROP_TAG(FlowMaxPressureChangeMsWells);
|
||||
NEW_PROP_TAG(FlowUseInnerIterationsMsWells);
|
||||
NEW_PROP_TAG(FlowMaxInnerIterMsWells);
|
||||
NEW_PROP_TAG(TolerancePressureMsWells);
|
||||
NEW_PROP_TAG(MaxPressureChangeMsWells);
|
||||
NEW_PROP_TAG(UseInnerIterationsMsWells);
|
||||
NEW_PROP_TAG(MaxInnerIterMsWells);
|
||||
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowDpMaxRel, 0.3);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowDsMax, 0.2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowDrMaxRel, 1e9);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowDbphMaxRel, 1.0);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowDWellFractionMax, 0.2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowMaxResidualAllowed, 1e7);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowToleranceMb, 1e-5);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowToleranceCnv,1e-2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowToleranceCnvRelaxed, 1e9);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowToleranceWells, 1e-4);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowToleranceWellControl, 1e-7);
|
||||
SET_INT_PROP(FlowModelParameters, FlowMaxWelleqIter, 15);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowUseMultisegmentWell, false);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowMaxSinglePrecisionDays, 20.0);
|
||||
SET_INT_PROP(FlowModelParameters, FlowMaxStrictIter, 8);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowSolveWelleqInitially, true);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowUpdateEquationsScaling, false);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowUseUpdateStabilization, true);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowMatrixAddWellContributions, false);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowPreconditionerAddWellContributions, false);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowTolerancePressureMsWells, 0.01 *1e5);
|
||||
SET_SCALAR_PROP(FlowModelParameters, FlowMaxPressureChangeMsWells, 2.0 *1e5);
|
||||
SET_BOOL_PROP(FlowModelParameters, FlowUseInnerIterationsMsWells, true);
|
||||
SET_INT_PROP(FlowModelParameters, FlowMaxInnerIterMsWells, 10);
|
||||
SET_SCALAR_PROP(FlowModelParameters, DpMaxRel, 0.3);
|
||||
SET_SCALAR_PROP(FlowModelParameters, DsMax, 0.2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, DrMaxRel, 1e9);
|
||||
SET_SCALAR_PROP(FlowModelParameters, DbphMaxRel, 1.0);
|
||||
SET_SCALAR_PROP(FlowModelParameters, DWellFractionMax, 0.2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, MaxResidualAllowed, 1e7);
|
||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceMb, 1e-5);
|
||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceCnv,1e-2);
|
||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceCnvRelaxed, 1e9);
|
||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceWells, 1e-4);
|
||||
SET_SCALAR_PROP(FlowModelParameters, ToleranceWellControl, 1e-7);
|
||||
SET_INT_PROP(FlowModelParameters, MaxWelleqIter, 15);
|
||||
SET_BOOL_PROP(FlowModelParameters, UseMultisegmentWell, false);
|
||||
SET_SCALAR_PROP(FlowModelParameters, MaxSinglePrecisionDays, 20.0);
|
||||
SET_INT_PROP(FlowModelParameters, MaxStrictIter, 8);
|
||||
SET_BOOL_PROP(FlowModelParameters, SolveWelleqInitially, true);
|
||||
SET_BOOL_PROP(FlowModelParameters, UpdateEquationsScaling, false);
|
||||
SET_BOOL_PROP(FlowModelParameters, UseUpdateStabilization, true);
|
||||
SET_BOOL_PROP(FlowModelParameters, MatrixAddWellContributions, false);
|
||||
SET_BOOL_PROP(FlowModelParameters, PreconditionerAddWellContributions, false);
|
||||
SET_SCALAR_PROP(FlowModelParameters, TolerancePressureMsWells, 0.01 *1e5);
|
||||
SET_SCALAR_PROP(FlowModelParameters, MaxPressureChangeMsWells, 2.0 *1e5);
|
||||
SET_BOOL_PROP(FlowModelParameters, UseInnerIterationsMsWells, true);
|
||||
SET_INT_PROP(FlowModelParameters, MaxInnerIterMsWells, 10);
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -168,60 +168,60 @@ namespace Opm
|
|||
/// Construct from user parameters or defaults.
|
||||
BlackoilModelParametersEbos()
|
||||
{
|
||||
dp_max_rel_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowDpMaxRel);
|
||||
ds_max_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowDsMax);
|
||||
dr_max_rel_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowDrMaxRel);
|
||||
dbhp_max_rel_= EWOMS_GET_PARAM(TypeTag, Scalar, FlowDbphMaxRel);
|
||||
dwell_fraction_max_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowDWellFractionMax);
|
||||
max_residual_allowed_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowMaxResidualAllowed);
|
||||
tolerance_mb_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowToleranceMb);
|
||||
tolerance_cnv_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowToleranceCnv);
|
||||
tolerance_cnv_relaxed_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowToleranceCnvRelaxed);
|
||||
tolerance_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowToleranceWells);
|
||||
tolerance_well_control_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowToleranceWellControl);
|
||||
max_welleq_iter_ = EWOMS_GET_PARAM(TypeTag, int, FlowMaxWelleqIter);
|
||||
use_multisegment_well_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseMultisegmentWell);
|
||||
tolerance_pressure_ms_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowTolerancePressureMsWells);
|
||||
max_pressure_change_ms_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowMaxPressureChangeMsWells);
|
||||
use_inner_iterations_ms_wells_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseInnerIterationsMsWells);
|
||||
max_inner_iter_ms_wells_ = EWOMS_GET_PARAM(TypeTag, int, FlowMaxInnerIterMsWells);
|
||||
maxSinglePrecisionTimeStep_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowMaxSinglePrecisionDays) *24*60*60;
|
||||
max_strict_iter_ = EWOMS_GET_PARAM(TypeTag, int, FlowMaxStrictIter);
|
||||
solve_welleq_initially_ = EWOMS_GET_PARAM(TypeTag, bool, FlowSolveWelleqInitially);
|
||||
update_equations_scaling_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUpdateEquationsScaling);
|
||||
use_update_stabilization_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseUpdateStabilization);
|
||||
matrix_add_well_contributions_ = EWOMS_GET_PARAM(TypeTag, bool, FlowMatrixAddWellContributions);
|
||||
preconditioner_add_well_contributions_ = EWOMS_GET_PARAM(TypeTag, bool, FlowPreconditionerAddWellContributions);
|
||||
dp_max_rel_ = EWOMS_GET_PARAM(TypeTag, Scalar, DpMaxRel);
|
||||
ds_max_ = EWOMS_GET_PARAM(TypeTag, Scalar, DsMax);
|
||||
dr_max_rel_ = EWOMS_GET_PARAM(TypeTag, Scalar, DrMaxRel);
|
||||
dbhp_max_rel_= EWOMS_GET_PARAM(TypeTag, Scalar, DbphMaxRel);
|
||||
dwell_fraction_max_ = EWOMS_GET_PARAM(TypeTag, Scalar, DWellFractionMax);
|
||||
max_residual_allowed_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxResidualAllowed);
|
||||
tolerance_mb_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceMb);
|
||||
tolerance_cnv_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceCnv);
|
||||
tolerance_cnv_relaxed_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceCnvRelaxed);
|
||||
tolerance_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceWells);
|
||||
tolerance_well_control_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceWellControl);
|
||||
max_welleq_iter_ = EWOMS_GET_PARAM(TypeTag, int, MaxWelleqIter);
|
||||
use_multisegment_well_ = EWOMS_GET_PARAM(TypeTag, bool, UseMultisegmentWell);
|
||||
tolerance_pressure_ms_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, TolerancePressureMsWells);
|
||||
max_pressure_change_ms_wells_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxPressureChangeMsWells);
|
||||
use_inner_iterations_ms_wells_ = EWOMS_GET_PARAM(TypeTag, bool, UseInnerIterationsMsWells);
|
||||
max_inner_iter_ms_wells_ = EWOMS_GET_PARAM(TypeTag, int, MaxInnerIterMsWells);
|
||||
maxSinglePrecisionTimeStep_ = EWOMS_GET_PARAM(TypeTag, Scalar, MaxSinglePrecisionDays) *24*60*60;
|
||||
max_strict_iter_ = EWOMS_GET_PARAM(TypeTag, int, MaxStrictIter);
|
||||
solve_welleq_initially_ = EWOMS_GET_PARAM(TypeTag, bool, SolveWelleqInitially);
|
||||
update_equations_scaling_ = EWOMS_GET_PARAM(TypeTag, bool, UpdateEquationsScaling);
|
||||
use_update_stabilization_ = EWOMS_GET_PARAM(TypeTag, bool, UseUpdateStabilization);
|
||||
matrix_add_well_contributions_ = EWOMS_GET_PARAM(TypeTag, bool, MatrixAddWellContributions);
|
||||
preconditioner_add_well_contributions_ = EWOMS_GET_PARAM(TypeTag, bool, PreconditionerAddWellContributions);
|
||||
|
||||
deck_file_name_ = EWOMS_GET_PARAM(TypeTag, std::string, EclDeckFileName);
|
||||
}
|
||||
|
||||
static void registerParameters()
|
||||
{
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowDpMaxRel, "Maximum relative change of pressure in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowDsMax, "Maximum absolute change of any saturation in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowDrMaxRel, "Maximum relative change of the gas-in-oil or oil-in-gas ratio in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowDbphMaxRel, "Maximum relative change of the bottom-hole pressure in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowDWellFractionMax, "Maximum absolute change of a well's volume fraction in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowMaxResidualAllowed, "Absolute maximum tolerated for residuals without cutting the time step size");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowToleranceMb, "Tolerated mass balance error relative to total mass present");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowToleranceCnv, "Local convergence tolerance (Maximum of local saturation errors)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowToleranceCnvRelaxed, "Relaxed local convergence tolerance that applies for iterations after the iterations with the strict tolerance");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowToleranceWells, "Well convergence tolerance");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowToleranceWellControl, "Tolerance for the well control equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowMaxWelleqIter, "Maximum number of iterations to determine solution the well equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseMultisegmentWell, "Use the well model for multi-segment wells instead of the one for single-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowTolerancePressureMsWells, "Tolerance for the pressure equations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowMaxPressureChangeMsWells, "Maximum relative pressure change for a single iteration of the multi-segment well model");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseInnerIterationsMsWells, "Use nested iterations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowMaxInnerIterMsWells, "Maximum number of inner iterations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowMaxSinglePrecisionDays, "Maximum time step size where single precision floating point arithmetic can be used solving for the linear systems of equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowMaxStrictIter, "Maximum number of Newton iterations before relaxed tolerances are used for the CNV convergence criterion");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowSolveWelleqInitially, "Fully solve the well equations before each iteration of the reservoir model");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUpdateEquationsScaling, "Update scaling factors for mass balance equations during the run");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseUpdateStabilization, "Try to detect and correct oscillations or stagnation during the Newton method");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowMatrixAddWellContributions, "Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowPreconditionerAddWellContributions, "Explicitly specify the influences of wells between cells for the preconditioner matrix only");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, DpMaxRel, "Maximum relative change of pressure in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, DsMax, "Maximum absolute change of any saturation in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, DrMaxRel, "Maximum relative change of the gas-in-oil or oil-in-gas ratio in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, DbphMaxRel, "Maximum relative change of the bottom-hole pressure in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, DWellFractionMax, "Maximum absolute change of a well's volume fraction in a single iteration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxResidualAllowed, "Absolute maximum tolerated for residuals without cutting the time step size");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceMb, "Tolerated mass balance error relative to total mass present");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceCnv, "Local convergence tolerance (Maximum of local saturation errors)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceCnvRelaxed, "Relaxed local convergence tolerance that applies for iterations after the iterations with the strict tolerance");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceWells, "Well convergence tolerance");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceWellControl, "Tolerance for the well control equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, MaxWelleqIter, "Maximum number of iterations to determine solution the well equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseMultisegmentWell, "Use the well model for multi-segment wells instead of the one for single-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, TolerancePressureMsWells, "Tolerance for the pressure equations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxPressureChangeMsWells, "Maximum relative pressure change for a single iteration of the multi-segment well model");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseInnerIterationsMsWells, "Use nested iterations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, MaxInnerIterMsWells, "Maximum number of inner iterations for multi-segment wells");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxSinglePrecisionDays, "Maximum time step size where single precision floating point arithmetic can be used solving for the linear systems of equations");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, MaxStrictIter, "Maximum number of Newton iterations before relaxed tolerances are used for the CNV convergence criterion");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, SolveWelleqInitially, "Fully solve the well equations before each iteration of the reservoir model");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UpdateEquationsScaling, "Update scaling factors for mass balance equations during the run");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseUpdateStabilization, "Try to detect and correct oscillations or stagnation during the Newton method");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, MatrixAddWellContributions, "Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, PreconditionerAddWellContributions, "Explicitly specify the influences of wells between cells for the preconditioner matrix only");
|
||||
}
|
||||
};
|
||||
} // namespace Opm
|
||||
|
|
|
@ -58,17 +58,17 @@
|
|||
|
||||
BEGIN_PROPERTIES;
|
||||
|
||||
NEW_PROP_TAG(FlowOutputMode);
|
||||
NEW_PROP_TAG(FlowEnableDryRun);
|
||||
NEW_PROP_TAG(FlowOutputInterval);
|
||||
NEW_PROP_TAG(FlowUseAmg);
|
||||
NEW_PROP_TAG(OutputMode);
|
||||
NEW_PROP_TAG(EnableDryRun);
|
||||
NEW_PROP_TAG(OutputInterval);
|
||||
NEW_PROP_TAG(UseAmg);
|
||||
|
||||
SET_STRING_PROP(EclFlowProblem, FlowOutputMode, "all");
|
||||
SET_STRING_PROP(EclFlowProblem, OutputMode, "all");
|
||||
|
||||
// TODO: enumeration parameters. we use strings for now.
|
||||
SET_STRING_PROP(EclFlowProblem, FlowEnableDryRun, "auto");
|
||||
SET_STRING_PROP(EclFlowProblem, EnableDryRun, "auto");
|
||||
|
||||
SET_INT_PROP(EclFlowProblem, FlowOutputInterval, 1);
|
||||
SET_INT_PROP(EclFlowProblem, OutputInterval, 1);
|
||||
|
||||
END_PROPERTIES;
|
||||
|
||||
|
@ -105,11 +105,11 @@ namespace Opm
|
|||
static int setupParameters_(int argc, char** argv)
|
||||
{
|
||||
// register the flow specific parameters
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowOutputMode,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, OutputMode,
|
||||
"Specify which messages are going to be printed. Valid values are: none, log, all (default)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowEnableDryRun,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, EnableDryRun,
|
||||
"Specify if the simulation ought to be actually run, or just pretended to be");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowOutputInterval,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, OutputInterval,
|
||||
"Specify the number of report steps between two consecutive writes of restart data");
|
||||
Simulator::registerParameters();
|
||||
|
||||
|
@ -287,7 +287,7 @@ namespace Opm
|
|||
void setupOutput()
|
||||
{
|
||||
const std::string outputModeString =
|
||||
EWOMS_GET_PARAM(TypeTag, std::string, FlowOutputMode);
|
||||
EWOMS_GET_PARAM(TypeTag, std::string, OutputMode);
|
||||
static std::map<std::string, FileOutputMode> stringToOutputMode =
|
||||
{ {"none", OUTPUT_NONE },
|
||||
{"false", OUTPUT_LOG_ONLY },
|
||||
|
@ -307,7 +307,7 @@ namespace Opm
|
|||
|
||||
output_cout_ = false;
|
||||
if (mpi_rank_ == 0) {
|
||||
output_cout_ = EWOMS_GET_PARAM(TypeTag, bool, FlowEnableTerminalOutput);
|
||||
output_cout_ = EWOMS_GET_PARAM(TypeTag, bool, EnableTerminalOutput);
|
||||
output_to_files_ = (output_ != OUTPUT_NONE);
|
||||
}
|
||||
}
|
||||
|
@ -445,7 +445,7 @@ namespace Opm
|
|||
}
|
||||
|
||||
// Possible to force initialization only behavior (NOSIM).
|
||||
const std::string& dryRunString = EWOMS_GET_PARAM(TypeTag, std::string, FlowEnableDryRun);
|
||||
const std::string& dryRunString = EWOMS_GET_PARAM(TypeTag, std::string, EnableDryRun);
|
||||
if (dryRunString != "" && dryRunString != "auto") {
|
||||
bool yesno;
|
||||
if (dryRunString == "true"
|
||||
|
@ -457,7 +457,7 @@ namespace Opm
|
|||
|| dryRunString == "0")
|
||||
yesno = false;
|
||||
else
|
||||
throw std::invalid_argument("Invalid value for parameter FlowEnableDryRun: '"
|
||||
throw std::invalid_argument("Invalid value for parameter EnableDryRun: '"
|
||||
+dryRunString+"'");
|
||||
auto& ioConfig = eclState().getIOConfig();
|
||||
ioConfig.overrideNOSIM(yesno);
|
||||
|
|
|
@ -40,35 +40,35 @@ BEGIN_PROPERTIES
|
|||
NEW_TYPE_TAG(FlowIstlSolverParams);
|
||||
|
||||
NEW_PROP_TAG(Scalar);
|
||||
NEW_PROP_TAG(FlowLinearSolverReduction);
|
||||
NEW_PROP_TAG(FlowIluRelaxation);
|
||||
NEW_PROP_TAG(FlowLinearSolverMaxIter);
|
||||
NEW_PROP_TAG(FlowLinearSolverRestart);
|
||||
NEW_PROP_TAG(LinearSolverReduction);
|
||||
NEW_PROP_TAG(IluRelaxation);
|
||||
NEW_PROP_TAG(LinearSolverMaxIter);
|
||||
NEW_PROP_TAG(LinearSolverRestart);
|
||||
NEW_PROP_TAG(FlowLinearSolverVerbosity);
|
||||
NEW_PROP_TAG(FlowIluFillinLevel);
|
||||
NEW_PROP_TAG(FlowMIluVariant);
|
||||
NEW_PROP_TAG(FlowIluRedblack);
|
||||
NEW_PROP_TAG(FlowIluReorderSpheres);
|
||||
NEW_PROP_TAG(FlowUseGmres);
|
||||
NEW_PROP_TAG(FlowLinearSolverRequireFullSparsityPattern);
|
||||
NEW_PROP_TAG(FlowLinearSolverIgnoreConvergenceFailure);
|
||||
NEW_PROP_TAG(FlowUseAmg);
|
||||
NEW_PROP_TAG(FlowUseCpr);
|
||||
NEW_PROP_TAG(IluFillinLevel);
|
||||
NEW_PROP_TAG(MIluVariant);
|
||||
NEW_PROP_TAG(IluRedblack);
|
||||
NEW_PROP_TAG(IluReorderSpheres);
|
||||
NEW_PROP_TAG(UseGmres);
|
||||
NEW_PROP_TAG(LinearSolverRequireFullSparsityPattern);
|
||||
NEW_PROP_TAG(LinearSolverIgnoreConvergenceFailure);
|
||||
NEW_PROP_TAG(UseAmg);
|
||||
NEW_PROP_TAG(UseCpr);
|
||||
|
||||
SET_SCALAR_PROP(FlowIstlSolverParams, FlowLinearSolverReduction, 1e-2);
|
||||
SET_SCALAR_PROP(FlowIstlSolverParams, FlowIluRelaxation, 0.9);
|
||||
SET_INT_PROP(FlowIstlSolverParams, FlowLinearSolverMaxIter, 150);
|
||||
SET_INT_PROP(FlowIstlSolverParams, FlowLinearSolverRestart, 40);
|
||||
SET_SCALAR_PROP(FlowIstlSolverParams, LinearSolverReduction, 1e-2);
|
||||
SET_SCALAR_PROP(FlowIstlSolverParams, IluRelaxation, 0.9);
|
||||
SET_INT_PROP(FlowIstlSolverParams, LinearSolverMaxIter, 150);
|
||||
SET_INT_PROP(FlowIstlSolverParams, LinearSolverRestart, 40);
|
||||
SET_INT_PROP(FlowIstlSolverParams, FlowLinearSolverVerbosity, 0);
|
||||
SET_INT_PROP(FlowIstlSolverParams, FlowIluFillinLevel, 0);
|
||||
SET_STRING_PROP(FlowIstlSolverParams, FlowMIluVariant, "ILU");
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowIluRedblack, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowIluReorderSpheres, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowUseGmres, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowLinearSolverRequireFullSparsityPattern, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowLinearSolverIgnoreConvergenceFailure, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowUseAmg, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, FlowUseCpr, false);
|
||||
SET_INT_PROP(FlowIstlSolverParams, IluFillinLevel, 0);
|
||||
SET_STRING_PROP(FlowIstlSolverParams, MIluVariant, "ILU");
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, IluRedblack, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, IluReorderSpheres, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, UseGmres, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, LinearSolverRequireFullSparsityPattern, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, LinearSolverIgnoreConvergenceFailure, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, UseAmg, false);
|
||||
SET_BOOL_PROP(FlowIstlSolverParams, UseCpr, false);
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -97,39 +97,39 @@ namespace Opm
|
|||
void init()
|
||||
{
|
||||
// TODO: these parameters have undocumented non-trivial dependencies
|
||||
linear_solver_reduction_ = EWOMS_GET_PARAM(TypeTag, double, FlowLinearSolverReduction);
|
||||
ilu_relaxation_ = EWOMS_GET_PARAM(TypeTag, double, FlowIluRelaxation);
|
||||
linear_solver_maxiter_ = EWOMS_GET_PARAM(TypeTag, int, FlowLinearSolverMaxIter);
|
||||
linear_solver_restart_ = EWOMS_GET_PARAM(TypeTag, int, FlowLinearSolverRestart);
|
||||
linear_solver_reduction_ = EWOMS_GET_PARAM(TypeTag, double, LinearSolverReduction);
|
||||
ilu_relaxation_ = EWOMS_GET_PARAM(TypeTag, double, IluRelaxation);
|
||||
linear_solver_maxiter_ = EWOMS_GET_PARAM(TypeTag, int, LinearSolverMaxIter);
|
||||
linear_solver_restart_ = EWOMS_GET_PARAM(TypeTag, int, LinearSolverRestart);
|
||||
linear_solver_verbosity_ = EWOMS_GET_PARAM(TypeTag, int, FlowLinearSolverVerbosity);
|
||||
ilu_fillin_level_ = EWOMS_GET_PARAM(TypeTag, int, FlowIluFillinLevel);
|
||||
ilu_milu_ = convertString2Milu(EWOMS_GET_PARAM(TypeTag, std::string, FlowMIluVariant));
|
||||
ilu_redblack_ = EWOMS_GET_PARAM(TypeTag, bool, FlowIluRedblack);
|
||||
ilu_reorder_sphere_ = EWOMS_GET_PARAM(TypeTag, bool, FlowIluReorderSpheres);
|
||||
newton_use_gmres_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseGmres);
|
||||
require_full_sparsity_pattern_ = EWOMS_GET_PARAM(TypeTag, bool, FlowLinearSolverRequireFullSparsityPattern);
|
||||
ignoreConvergenceFailure_ = EWOMS_GET_PARAM(TypeTag, bool, FlowLinearSolverIgnoreConvergenceFailure);
|
||||
linear_solver_use_amg_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseAmg);
|
||||
use_cpr_ = EWOMS_GET_PARAM(TypeTag, bool, FlowUseCpr);
|
||||
ilu_fillin_level_ = EWOMS_GET_PARAM(TypeTag, int, IluFillinLevel);
|
||||
ilu_milu_ = convertString2Milu(EWOMS_GET_PARAM(TypeTag, std::string, MIluVariant));
|
||||
ilu_redblack_ = EWOMS_GET_PARAM(TypeTag, bool, IluRedblack);
|
||||
ilu_reorder_sphere_ = EWOMS_GET_PARAM(TypeTag, bool, IluReorderSpheres);
|
||||
newton_use_gmres_ = EWOMS_GET_PARAM(TypeTag, bool, UseGmres);
|
||||
require_full_sparsity_pattern_ = EWOMS_GET_PARAM(TypeTag, bool, LinearSolverRequireFullSparsityPattern);
|
||||
ignoreConvergenceFailure_ = EWOMS_GET_PARAM(TypeTag, bool, LinearSolverIgnoreConvergenceFailure);
|
||||
linear_solver_use_amg_ = EWOMS_GET_PARAM(TypeTag, bool, UseAmg);
|
||||
use_cpr_ = EWOMS_GET_PARAM(TypeTag, bool, UseCpr);
|
||||
}
|
||||
|
||||
template <class TypeTag>
|
||||
static void registerParameters()
|
||||
{
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowLinearSolverReduction, "The minimum reduction of the residual which the linear solver must achieve");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowIluRelaxation, "The relaxation factor of the linear solver's ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowLinearSolverMaxIter, "The maximum number of iterations of the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowLinearSolverRestart, "The number of iterations after which GMRES is restarted");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, LinearSolverReduction, "The minimum reduction of the residual which the linear solver must achieve");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, IluRelaxation, "The relaxation factor of the linear solver's ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, LinearSolverMaxIter, "The maximum number of iterations of the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, LinearSolverRestart, "The number of iterations after which GMRES is restarted");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowLinearSolverVerbosity, "The verbosity level of the linear solver (0: off, 2: all)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowIluFillinLevel, "The fill-in level of the linear solver's ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowMIluVariant, "Specify which variant of the modified-ILU preconditioner ought to be used");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowIluRedblack, "Use red-black partioning for the ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowIluReorderSpheres, "Reorder the entries of the matrix in the ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseGmres, "Use GMRES as the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowLinearSolverRequireFullSparsityPattern, "Produce the full sparsity pattern for the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowLinearSolverIgnoreConvergenceFailure, "Continue with the simulation like nothing happened after the linear solver did not converge");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseAmg, "Use AMG as the linear solver's preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowUseCpr, "Use CPR as the linear solver's preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, IluFillinLevel, "The fill-in level of the linear solver's ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, MIluVariant, "Specify which variant of the modified-ILU preconditioner ought to be used");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, IluRedblack, "Use red-black partioning for the ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, IluReorderSpheres, "Reorder the entries of the matrix in the ILU preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseGmres, "Use GMRES as the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, LinearSolverRequireFullSparsityPattern, "Produce the full sparsity pattern for the linear solver");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, LinearSolverIgnoreConvergenceFailure, "Continue with the simulation like nothing happened after the linear solver did not converge");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseAmg, "Use AMG as the linear solver's preconditioner");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, UseCpr, "Use CPR as the linear solver's preconditioner");
|
||||
}
|
||||
|
||||
NewtonIterationBlackoilInterleavedParameters() { reset(); }
|
||||
|
|
|
@ -39,15 +39,15 @@ BEGIN_PROPERTIES
|
|||
NEW_TYPE_TAG(FlowNonLinearSolver);
|
||||
|
||||
NEW_PROP_TAG(Scalar);
|
||||
NEW_PROP_TAG(FlowNewtonMaxRelax);
|
||||
NEW_PROP_TAG(NewtonMaxRelax);
|
||||
NEW_PROP_TAG(FlowNewtonMaxIterations);
|
||||
NEW_PROP_TAG(FlowNewtonMinIterations);
|
||||
NEW_PROP_TAG(FlowNewtonRelaxationType);
|
||||
NEW_PROP_TAG(NewtonRelaxationType);
|
||||
|
||||
SET_SCALAR_PROP(FlowNonLinearSolver, FlowNewtonMaxRelax, 0.5);
|
||||
SET_SCALAR_PROP(FlowNonLinearSolver, NewtonMaxRelax, 0.5);
|
||||
SET_INT_PROP(FlowNonLinearSolver, FlowNewtonMaxIterations, 10);
|
||||
SET_INT_PROP(FlowNonLinearSolver, FlowNewtonMinIterations, 1);
|
||||
SET_STRING_PROP(FlowNonLinearSolver, FlowNewtonRelaxationType, "dampen");
|
||||
SET_STRING_PROP(FlowNonLinearSolver, NewtonRelaxationType, "dampen");
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -84,11 +84,11 @@ namespace Opm {
|
|||
reset();
|
||||
|
||||
// overload with given parameters
|
||||
relaxMax_ = EWOMS_GET_PARAM(TypeTag, Scalar, FlowNewtonMaxRelax);
|
||||
relaxMax_ = EWOMS_GET_PARAM(TypeTag, Scalar, NewtonMaxRelax);
|
||||
maxIter_ = EWOMS_GET_PARAM(TypeTag, int, FlowNewtonMaxIterations);
|
||||
minIter_ = EWOMS_GET_PARAM(TypeTag, int, FlowNewtonMinIterations);
|
||||
|
||||
const auto& relaxationTypeString = EWOMS_GET_PARAM(TypeTag, std::string, FlowNewtonRelaxationType);
|
||||
const auto& relaxationTypeString = EWOMS_GET_PARAM(TypeTag, std::string, NewtonRelaxationType);
|
||||
if (relaxationTypeString == "dampen") {
|
||||
relaxType_ = Dampen;
|
||||
} else if (relaxationTypeString == "sor") {
|
||||
|
@ -100,10 +100,10 @@ namespace Opm {
|
|||
|
||||
static void registerParameters()
|
||||
{
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, FlowNewtonMaxRelax, "The maximum relaxation factor of a Newton iteration used by flow");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, Scalar, NewtonMaxRelax, "The maximum relaxation factor of a Newton iteration used by flow");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowNewtonMaxIterations, "The maximum number of Newton iterations per time step used by flow");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowNewtonMinIterations, "The minimum number of Newton iterations per time step used by flow");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowNewtonRelaxationType, "The type of relaxation used by flow's Newton method");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, NewtonRelaxationType, "The type of relaxation used by flow's Newton method");
|
||||
}
|
||||
|
||||
void reset()
|
||||
|
|
|
@ -38,13 +38,13 @@
|
|||
|
||||
BEGIN_PROPERTIES;
|
||||
|
||||
NEW_PROP_TAG(FlowEnableTerminalOutput);
|
||||
NEW_PROP_TAG(FlowEnableAdaptiveTimeStepping);
|
||||
NEW_PROP_TAG(FlowEnableTuning);
|
||||
NEW_PROP_TAG(EnableTerminalOutput);
|
||||
NEW_PROP_TAG(EnableAdaptiveTimeStepping);
|
||||
NEW_PROP_TAG(EnableTuning);
|
||||
|
||||
SET_BOOL_PROP(EclFlowProblem, FlowEnableTerminalOutput, true);
|
||||
SET_BOOL_PROP(EclFlowProblem, FlowEnableAdaptiveTimeStepping, true);
|
||||
SET_BOOL_PROP(EclFlowProblem, FlowEnableTuning, false);
|
||||
SET_BOOL_PROP(EclFlowProblem, EnableTerminalOutput, true);
|
||||
SET_BOOL_PROP(EclFlowProblem, EnableAdaptiveTimeStepping, true);
|
||||
SET_BOOL_PROP(EclFlowProblem, EnableTuning, false);
|
||||
|
||||
END_PROPERTIES;
|
||||
|
||||
|
@ -109,7 +109,7 @@ public:
|
|||
|
||||
// Only rank 0 does print to std::cout
|
||||
const auto& comm = grid().comm();
|
||||
terminalOutput_ = EWOMS_GET_PARAM(TypeTag, bool, FlowEnableTerminalOutput);
|
||||
terminalOutput_ = EWOMS_GET_PARAM(TypeTag, bool, EnableTerminalOutput);
|
||||
terminalOutput_ = terminalOutput_ && (comm.rank() == 0);
|
||||
}
|
||||
|
||||
|
@ -119,11 +119,11 @@ public:
|
|||
SolverParameters::registerParameters();
|
||||
TimeStepper::registerParameters();
|
||||
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowEnableTerminalOutput,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableTerminalOutput,
|
||||
"Print high-level information about the simulation's progress to the terminal");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowEnableAdaptiveTimeStepping,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableAdaptiveTimeStepping,
|
||||
"Use adaptive time stepping between report steps");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowEnableTuning,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, EnableTuning,
|
||||
"Honor some aspects of the TUNING keyword.");
|
||||
}
|
||||
|
||||
|
@ -156,8 +156,8 @@ public:
|
|||
// adaptive time stepping
|
||||
const auto& events = schedule().getEvents();
|
||||
std::unique_ptr<TimeStepper > adaptiveTimeStepping;
|
||||
bool enableAdaptive = EWOMS_GET_PARAM(TypeTag, bool, FlowEnableAdaptiveTimeStepping);
|
||||
bool enableTUNING = EWOMS_GET_PARAM(TypeTag, bool, FlowEnableTuning);
|
||||
bool enableAdaptive = EWOMS_GET_PARAM(TypeTag, bool, EnableAdaptiveTimeStepping);
|
||||
bool enableTUNING = EWOMS_GET_PARAM(TypeTag, bool, EnableTuning);
|
||||
if (enableAdaptive) {
|
||||
if (enableTUNING) {
|
||||
adaptiveTimeStepping.reset(new TimeStepper(schedule().getTuning(), timer.currentStepNum(), terminalOutput_));
|
||||
|
|
|
@ -23,41 +23,41 @@ NEW_TYPE_TAG(FlowTimeSteppingParameters);
|
|||
|
||||
NEW_PROP_TAG(Scalar);
|
||||
|
||||
NEW_PROP_TAG(FlowSolverRestartFactor);
|
||||
NEW_PROP_TAG(FlowSolverGrowthFactor);
|
||||
NEW_PROP_TAG(FlowSolverMaxGrowth);
|
||||
NEW_PROP_TAG(FlowSolverMaxTimeStepInDays);
|
||||
NEW_PROP_TAG(FlowSolverMaxRestarts);
|
||||
NEW_PROP_TAG(FlowSolverVerbosity);
|
||||
NEW_PROP_TAG(FlowTimeStepVerbosity);
|
||||
NEW_PROP_TAG(FlowInitialTimeStepInDays);
|
||||
NEW_PROP_TAG(FlowFullTimeStepInitially);
|
||||
NEW_PROP_TAG(FlowTimeStepAfterEventInDays);
|
||||
NEW_PROP_TAG(FlowTimeStepControl);
|
||||
NEW_PROP_TAG(FlowTimeStepControlTolerance);
|
||||
NEW_PROP_TAG(FlowTimeStepControlTargetIterations);
|
||||
NEW_PROP_TAG(FlowTimeStepControlTargetNewtonIterations);
|
||||
NEW_PROP_TAG(FlowTimeStepControlDecayRate);
|
||||
NEW_PROP_TAG(FlowTimeStepControlGrowthRate);
|
||||
NEW_PROP_TAG(FlowTimeStepControlFileName);
|
||||
NEW_PROP_TAG(SolverRestartFactor);
|
||||
NEW_PROP_TAG(SolverGrowthFactor);
|
||||
NEW_PROP_TAG(SolverMaxGrowth);
|
||||
NEW_PROP_TAG(SolverMaxTimeStepInDays);
|
||||
NEW_PROP_TAG(SolverMaxRestarts);
|
||||
NEW_PROP_TAG(SolverVerbosity);
|
||||
NEW_PROP_TAG(TimeStepVerbosity);
|
||||
NEW_PROP_TAG(InitialTimeStepInDays);
|
||||
NEW_PROP_TAG(FullTimeStepInitially);
|
||||
NEW_PROP_TAG(TimeStepAfterEventInDays);
|
||||
NEW_PROP_TAG(TimeStepControl);
|
||||
NEW_PROP_TAG(TimeStepControlTolerance);
|
||||
NEW_PROP_TAG(TimeStepControlTargetIterations);
|
||||
NEW_PROP_TAG(TimeStepControlTargetNewtonIterations);
|
||||
NEW_PROP_TAG(TimeStepControlDecayRate);
|
||||
NEW_PROP_TAG(TimeStepControlGrowthRate);
|
||||
NEW_PROP_TAG(TimeStepControlFileName);
|
||||
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowSolverRestartFactor, 0.33);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowSolverGrowthFactor, 2.0);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowSolverMaxGrowth, 3.0);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowSolverMaxTimeStepInDays, 365.0);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, FlowSolverMaxRestarts, 10);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, FlowSolverVerbosity, 1);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, FlowTimeStepVerbosity, 1);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowInitialTimeStepInDays, 1.0);
|
||||
SET_BOOL_PROP(FlowTimeSteppingParameters, FlowFullTimeStepInitially, false);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowTimeStepAfterEventInDays, -1.0);
|
||||
SET_STRING_PROP(FlowTimeSteppingParameters, FlowTimeStepControl, "pid");
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowTimeStepControlTolerance, 1e-1);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, FlowTimeStepControlTargetIterations, 30);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, FlowTimeStepControlTargetNewtonIterations, 8);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowTimeStepControlDecayRate, 0.75);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, FlowTimeStepControlGrowthRate, 1.25);
|
||||
SET_STRING_PROP(FlowTimeSteppingParameters, FlowTimeStepControlFileName, "timesteps");
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverRestartFactor, 0.33);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverGrowthFactor, 2.0);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverMaxGrowth, 3.0);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, SolverMaxTimeStepInDays, 365.0);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, SolverMaxRestarts, 10);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, SolverVerbosity, 1);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, TimeStepVerbosity, 1);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, InitialTimeStepInDays, 1.0);
|
||||
SET_BOOL_PROP(FlowTimeSteppingParameters, FullTimeStepInitially, false);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepAfterEventInDays, -1.0);
|
||||
SET_STRING_PROP(FlowTimeSteppingParameters, TimeStepControl, "pid");
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlTolerance, 1e-1);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, TimeStepControlTargetIterations, 30);
|
||||
SET_INT_PROP(FlowTimeSteppingParameters, TimeStepControlTargetNewtonIterations, 8);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlDecayRate, 0.75);
|
||||
SET_SCALAR_PROP(FlowTimeSteppingParameters, TimeStepControlGrowthRate, 1.25);
|
||||
SET_STRING_PROP(FlowTimeSteppingParameters, TimeStepControlFileName, "timesteps");
|
||||
|
||||
END_PROPERTIES
|
||||
|
||||
|
@ -97,16 +97,16 @@ namespace Opm {
|
|||
//! \brief contructor taking parameter object
|
||||
AdaptiveTimeSteppingEbos(const bool terminalOutput = true)
|
||||
: timeStepControl_()
|
||||
, restartFactor_(EWOMS_GET_PARAM(TypeTag, double, FlowSolverRestartFactor)) // 0.33
|
||||
, growthFactor_(EWOMS_GET_PARAM(TypeTag, double, FlowSolverGrowthFactor)) // 2.0
|
||||
, maxGrowth_(EWOMS_GET_PARAM(TypeTag, double, FlowSolverMaxGrowth)) // 3.0
|
||||
, maxTimeStep_(EWOMS_GET_PARAM(TypeTag, double, FlowSolverMaxTimeStepInDays)*24*60*60) // 365.25
|
||||
, solverRestartMax_(EWOMS_GET_PARAM(TypeTag, int, FlowSolverMaxRestarts)) // 10
|
||||
, solverVerbose_(EWOMS_GET_PARAM(TypeTag, int, FlowSolverVerbosity) > 0 && terminalOutput) // 2
|
||||
, timestepVerbose_(EWOMS_GET_PARAM(TypeTag, int, FlowTimeStepVerbosity) > 0 && terminalOutput) // 2
|
||||
, suggestedNextTimestep_(EWOMS_GET_PARAM(TypeTag, double, FlowInitialTimeStepInDays)*24*60*60) // 1.0
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FlowFullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, FlowTimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, restartFactor_(EWOMS_GET_PARAM(TypeTag, double, SolverRestartFactor)) // 0.33
|
||||
, growthFactor_(EWOMS_GET_PARAM(TypeTag, double, SolverGrowthFactor)) // 2.0
|
||||
, maxGrowth_(EWOMS_GET_PARAM(TypeTag, double, SolverMaxGrowth)) // 3.0
|
||||
, maxTimeStep_(EWOMS_GET_PARAM(TypeTag, double, SolverMaxTimeStepInDays)*24*60*60) // 365.25
|
||||
, solverRestartMax_(EWOMS_GET_PARAM(TypeTag, int, SolverMaxRestarts)) // 10
|
||||
, solverVerbose_(EWOMS_GET_PARAM(TypeTag, int, SolverVerbosity) > 0 && terminalOutput) // 2
|
||||
, timestepVerbose_(EWOMS_GET_PARAM(TypeTag, int, TimeStepVerbosity) > 0 && terminalOutput) // 2
|
||||
, suggestedNextTimestep_(EWOMS_GET_PARAM(TypeTag, double, InitialTimeStepInDays)*24*60*60) // 1.0
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, TimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, useNewtonIteration_(false)
|
||||
{
|
||||
init_();
|
||||
|
@ -124,13 +124,13 @@ namespace Opm {
|
|||
, restartFactor_(tuning.getTSFCNV(timeStep))
|
||||
, growthFactor_(tuning.getTFDIFF(timeStep))
|
||||
, maxGrowth_(tuning.getTSFMAX(timeStep))
|
||||
, maxTimeStep_(EWOMS_GET_PARAM(TypeTag, double, FlowSolverMaxTimeStepInDays)*24*60*60) // 365.25
|
||||
, solverRestartMax_(EWOMS_GET_PARAM(TypeTag, int, FlowSolverMaxRestarts)) // 10
|
||||
, solverVerbose_(EWOMS_GET_PARAM(TypeTag, int, FlowSolverVerbosity) > 0 && terminalOutput) // 2
|
||||
, timestepVerbose_(EWOMS_GET_PARAM(TypeTag, int, FlowTimeStepVerbosity) > 0 && terminalOutput) // 2
|
||||
, suggestedNextTimestep_(EWOMS_GET_PARAM(TypeTag, double, FlowInitialTimeStepInDays)*24*60*60) // 1.0
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FlowFullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, FlowTimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, maxTimeStep_(EWOMS_GET_PARAM(TypeTag, double, SolverMaxTimeStepInDays)*24*60*60) // 365.25
|
||||
, solverRestartMax_(EWOMS_GET_PARAM(TypeTag, int, SolverMaxRestarts)) // 10
|
||||
, solverVerbose_(EWOMS_GET_PARAM(TypeTag, int, SolverVerbosity) > 0 && terminalOutput) // 2
|
||||
, timestepVerbose_(EWOMS_GET_PARAM(TypeTag, int, TimeStepVerbosity) > 0 && terminalOutput) // 2
|
||||
, suggestedNextTimestep_(EWOMS_GET_PARAM(TypeTag, double, InitialTimeStepInDays)*24*60*60) // 1.0
|
||||
, fullTimestepInitially_(EWOMS_GET_PARAM(TypeTag, bool, FullTimeStepInitially)) // false
|
||||
, timestepAfterEvent_(EWOMS_GET_PARAM(TypeTag, double, TimeStepAfterEventInDays)*24*60*60) // 1e30
|
||||
, useNewtonIteration_(false)
|
||||
{
|
||||
init_();
|
||||
|
@ -139,39 +139,39 @@ namespace Opm {
|
|||
static void registerParameters()
|
||||
{
|
||||
// TODO: make sure the help messages are correct (and useful)
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowSolverRestartFactor,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, SolverRestartFactor,
|
||||
"The factor time steps are elongated after restarts");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowSolverGrowthFactor,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, SolverGrowthFactor,
|
||||
"The factor time steps are elongated after a successful substep");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowSolverMaxGrowth,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, SolverMaxGrowth,
|
||||
"The maximum factor time steps are elongated after a report step");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowSolverMaxTimeStepInDays,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, SolverMaxTimeStepInDays,
|
||||
"The maximum size of a time step in days");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowSolverMaxRestarts,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, SolverMaxRestarts,
|
||||
"The maximum number of breakdowns before a substep is given up and the simulator is terminated");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowSolverVerbosity,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, SolverVerbosity,
|
||||
"Specify the \"chattiness\" of the non-linear solver itself");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowTimeStepVerbosity,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, TimeStepVerbosity,
|
||||
"Specify the \"chattiness\" during the time integration");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowInitialTimeStepInDays,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, InitialTimeStepInDays,
|
||||
"The size of the initial time step in days");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FlowFullTimeStepInitially,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, bool, FullTimeStepInitially,
|
||||
"Always attempt to finish a report step using a single substep");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowTimeStepAfterEventInDays,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, TimeStepAfterEventInDays,
|
||||
"Time step size of the first time step after an event occurs during the simulation in days");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowTimeStepControl,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, TimeStepControl,
|
||||
"The algorithm used to determine time-step sizes. valid options are: 'pid' (default), 'pid+iteration', 'pid+newtoniteration', 'iterationcount' and 'hardcoded'");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowTimeStepControlTolerance,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, TimeStepControlTolerance,
|
||||
"The tolerance used by the time step size control algorithm");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowTimeStepControlTargetIterations,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, TimeStepControlTargetIterations,
|
||||
"The number of linear iterations which the time step control scheme should aim for (if applicable)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, FlowTimeStepControlTargetNewtonIterations,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, int, TimeStepControlTargetNewtonIterations,
|
||||
"The number of Newton iterations which the time step control scheme should aim for (if applicable)");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowTimeStepControlDecayRate,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, TimeStepControlDecayRate,
|
||||
"The decay rate of the time step size of the number of target iterations is exceeded");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, FlowTimeStepControlGrowthRate,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, double, TimeStepControlGrowthRate,
|
||||
"The growth rate of the time step size of the number of target iterations is undercut");
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, FlowTimeStepControlFileName,
|
||||
EWOMS_REGISTER_PARAM(TypeTag, std::string, TimeStepControlFileName,
|
||||
"The name of the file which contains the hardcoded time steps sizes");
|
||||
}
|
||||
|
||||
|
@ -406,29 +406,29 @@ namespace Opm {
|
|||
void init_()
|
||||
{
|
||||
// valid are "pid" and "pid+iteration"
|
||||
std::string control = EWOMS_GET_PARAM(TypeTag, std::string, FlowTimeStepControl); // "pid"
|
||||
std::string control = EWOMS_GET_PARAM(TypeTag, std::string, TimeStepControl); // "pid"
|
||||
|
||||
const double tol = EWOMS_GET_PARAM(TypeTag, double, FlowTimeStepControlTolerance); // 1e-1
|
||||
const double tol = EWOMS_GET_PARAM(TypeTag, double, TimeStepControlTolerance); // 1e-1
|
||||
if (control == "pid") {
|
||||
timeStepControl_ = TimeStepControlType(new PIDTimeStepControl(tol));
|
||||
}
|
||||
else if (control == "pid+iteration") {
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, FlowTimeStepControlTargetIterations); // 30
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, TimeStepControlTargetIterations); // 30
|
||||
timeStepControl_ = TimeStepControlType(new PIDAndIterationCountTimeStepControl(iterations, tol));
|
||||
}
|
||||
else if (control == "pid+newtoniteration") {
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, FlowTimeStepControlTargetNewtonIterations); // 8
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, TimeStepControlTargetNewtonIterations); // 8
|
||||
timeStepControl_ = TimeStepControlType(new PIDAndIterationCountTimeStepControl(iterations, tol));
|
||||
useNewtonIteration_ = true;
|
||||
}
|
||||
else if (control == "iterationcount") {
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, FlowTimeStepControlTargetIterations); // 30
|
||||
const double decayrate = EWOMS_GET_PARAM(TypeTag, double, FlowTimeStepControlDecayRate); // 0.75
|
||||
const double growthrate = EWOMS_GET_PARAM(TypeTag, double, FlowTimeStepControlGrowthRate); // 1.25
|
||||
const int iterations = EWOMS_GET_PARAM(TypeTag, int, TimeStepControlTargetIterations); // 30
|
||||
const double decayrate = EWOMS_GET_PARAM(TypeTag, double, TimeStepControlDecayRate); // 0.75
|
||||
const double growthrate = EWOMS_GET_PARAM(TypeTag, double, TimeStepControlGrowthRate); // 1.25
|
||||
timeStepControl_ = TimeStepControlType(new SimpleIterationCountTimeStepControl(iterations, decayrate, growthrate));
|
||||
}
|
||||
else if (control == "hardcoded") {
|
||||
const std::string filename = EWOMS_GET_PARAM(TypeTag, std::string, FlowTimeStepControlFileName); // "timesteps"
|
||||
const std::string filename = EWOMS_GET_PARAM(TypeTag, std::string, TimeStepControlFileName); // "timesteps"
|
||||
timeStepControl_ = TimeStepControlType(new HardcodedTimeStepControl(filename));
|
||||
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ rm -Rf ${RESULT_PATH}
|
|||
mkdir -p ${RESULT_PATH}
|
||||
cd ${RESULT_PATH}
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} --flow-enable-dry-run=true --ecl-output-dir=${RESULT_PATH}
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} --enable-dry-run=true --ecl-output-dir=${RESULT_PATH}
|
||||
else
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} nosim=true output_dir=${RESULT_PATH}
|
||||
fi
|
||||
|
|
|
@ -20,7 +20,7 @@ rm -Rf ${RESULT_PATH}
|
|||
mkdir -p ${RESULT_PATH}
|
||||
cd ${RESULT_PATH}
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --flow-linear-solver-reduction=1e-7 --flow-tolerance-cnv=5e-6 --flow-tolerance-mb=1e-8 --ecl-output-dir=${RESULT_PATH}
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --ecl-output-dir=${RESULT_PATH}
|
||||
else
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 output_dir=${RESULT_PATH}
|
||||
fi
|
||||
|
@ -29,7 +29,7 @@ test $? -eq 0 || exit 1
|
|||
mkdir mpi
|
||||
cd mpi
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --flow-linear-solver-reduction=1e-7 --flow-tolerance-cnv=5e-6 --flow-tolerance-mb=1e-8 --ecl-output-dir=${RESULT_PATH}/mpi
|
||||
mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --ecl-output-dir=${RESULT_PATH}/mpi
|
||||
else
|
||||
mpirun -np 4 ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA linear_solver_reduction=1e-7 tolerance_cnv=5e-6 tolerance_mb=1e-8 output_dir=${RESULT_PATH}/mpi
|
||||
fi
|
||||
|
|
|
@ -22,7 +22,7 @@ rm -Rf ${RESULT_PATH}
|
|||
mkdir -p ${RESULT_PATH}
|
||||
cd ${RESULT_PATH}
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} --flow-enable-dry-run=true --ecl-output-dir=${RESULT_PATH}
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} --enable-dry-run=true --ecl-output-dir=${RESULT_PATH}
|
||||
else
|
||||
${BINPATH}/${EXE_NAME} ${TEST_ARGS} nosim=true output_dir=${RESULT_PATH}
|
||||
fi
|
||||
|
|
|
@ -30,7 +30,7 @@ else
|
|||
CMD_PREFIX=""
|
||||
fi
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --flow-enable-adaptive-time-stepping=false --ecl-output-dir=${RESULT_PATH}
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --enable-adaptive-time-stepping=false --ecl-output-dir=${RESULT_PATH}
|
||||
else
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA timestep.adaptive=false output_dir=${RESULT_PATH}
|
||||
fi
|
||||
|
@ -40,7 +40,7 @@ test $? -eq 0 || exit 1
|
|||
${OPM_PACK_COMMAND} -o ${BASE_NAME} ${TEST_ARGS}_RESTART.DATA
|
||||
|
||||
if test "${EXE_NAME}" = "flow"; then
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --flow-enable-adaptive-time-stepping=false --ecl-output-dir=${RESULT_PATH}
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${TEST_ARGS}.DATA --enable-adaptive-time-stepping=false --ecl-output-dir=${RESULT_PATH}
|
||||
else
|
||||
${CMD_PREFIX} ${BINPATH}/${EXE_NAME} ${BASE_NAME} timestep.adaptive=false output_dir=${RESULT_PATH}
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue
Block a user