TUNING: XXX and TRG for CNV and MBE

This commit is contained in:
David Landa Marban committed 2025-08-22 12:28:52 +02:00
1 parent 4f33fbd598
commit 7a0a959195
8 files changed
+66 -57

No files matched your search

+2 -2
View File
@@ -441,9 +441,9 @@ endmacro (tests_hook)
# all setup common to the OPM library modules is done here
include (OpmLibMain)
opm_add_test(test_tuning_xxxMBE
opm_add_test(test_tuning_trgmbe
SOURCES
tests/test_tuning_XXXMBE.cpp
tests/test_tuning_TRGMBE.cpp
LIBRARIES
${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
ONLY_COMPILE)
+7 -7
View File
@@ -424,21 +424,21 @@ add_test_runSimulator(CASENAME dryrun
TEST_ARGS --enable-dry-run=true --enable-ecl-output=false --enable-vtk-output=true)
# Tests that are run based on simulator results, but not necessarily direct comparison to reference results
add_test_runSimulator(CASENAME tuning_xxxmbe
FILENAME 01_TUNING_XXXMBE
add_test_runSimulator(CASENAME tuning_trgmbe
FILENAME 01_TUNING_TRGMBE
SIMULATOR flow
DIR tuning
TEST_ARGS --output-extra-convergence-info=iterations --enable-tuning=true
POST_COMMAND $<TARGET_FILE:test_tuning_xxxMBE>)
POST_COMMAND $<TARGET_FILE:test_tuning_trgmbe>)
add_test_runSimulator(CASENAME notuning_xxxmbe
FILENAME 01_TUNING_XXXMBE
add_test_runSimulator(CASENAME notuning_trgmbe
FILENAME 01_TUNING_TRGMBE
SIMULATOR flow
DIR tuning
TEST_ARGS --output-extra-convergence-info=iterations --enable-tuning=false
POST_COMMAND $<TARGET_FILE:test_tuning_xxxMBE>)
POST_COMMAND $<TARGET_FILE:test_tuning_trgmbe>)
set_tests_properties(runSimulator/notuning_xxxmbe PROPERTIES WILL_FAIL TRUE)
set_tests_properties(runSimulator/notuning_trgmbe PROPERTIES WILL_FAIL TRUE)
add_test_runSimulator(CASENAME tuning_tsinit_nextstep
FILENAME 02_TUNING_TSINIT_NEXTSTEP
+1 -1
View File
@@ -402,7 +402,7 @@ Regularization factor for wells. Default: 100
The minimum reduction of the residual which the linear solver need to achieve for the solution to be accepted. Default: 0.01
.TP
\fB\-\-relaxed\-max\-pv\-fraction\fR=\fI\,SCALAR\/\fR
The fraction of the pore volume of the reservoir where the volumetric error (CNV) may be voilated during strict Newton iterations. Default: 0.03
The fraction of the pore volume of the reservoir where the volumetric error (CNV) may be violated during strict Newton iterations. Default: 0.03
.TP
\fB\-\-relaxed\-pressure\-tol\-msw\fR=\fI\,SCALAR\/\fR
Relaxed tolerance for the MSW pressure solution. Default: 10000
+8 -4
View File
@@ -729,12 +729,16 @@ void
BlackoilModel<TypeTag>::
updateTUNING(const Tuning& tuning)
{
this->param_.tolerance_mb_ = tuning.XXXMBE;
this->param_.tolerance_cnv_ = tuning.TRGCNV;
this->param_.tolerance_cnv_relaxed_ = tuning.XXXCNV;
this->param_.tolerance_mb_ = tuning.TRGMBE;
this->param_.tolerance_mb_relaxed_ = tuning.XXXMBE;
if (terminal_output_) {
OpmLog::debug(fmt::format("Setting BlackoilModel mass "
"balance limit (XXXMBE) to {:.2e}",
tuning.XXXMBE));
const auto msg = fmt::format("Tuning BlackoilModel tolerances: "
"MB: {:.2e}, CNV: {:.2e}",
tuning.TRGMBE, tuning.TRGCNV);
OpmLog::debug(msg);
}
}
@@ -309,9 +309,15 @@ public:
void updateTUNING(const Tuning& tuning)
{
modelParam_.tolerance_mb_ = tuning.XXXMBE;
modelParam_.tolerance_cnv_ = tuning.TRGCNV;
modelParam_.tolerance_cnv_relaxed_ = tuning.XXXCNV;
modelParam_.tolerance_mb_ = tuning.TRGMBE;
modelParam_.tolerance_mb_relaxed_ = tuning.XXXMBE;
if (terminalOutput_) {
OpmLog::debug(fmt::format("Setting SimulatorFullyImplicitBlackoil mass balance limit (XXXMBE) to {:.2e}", tuning.XXXMBE));
const auto msg = fmt::format("Tuning SimulatorFullyImplicitBlackoil tolerances: "
"MB: {:.2e}, CNV: {:.2e}",
tuning.TRGMBE, tuning.TRGCNV);
OpmLog::debug(msg);
}
}
+15 -15
View File
@@ -10,7 +10,7 @@ add_test_compare_parallel_simulation(CASENAME spe1
SIMULATOR flow
ABS_TOL ${abs_tol_parallel}
REL_TOL ${rel_tol_parallel}
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --enable-drift-compensation=false)
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
add_test_compare_parallel_simulation(CASENAME spe1_gaswater
FILENAME SPE1CASE2_GASWATER
@@ -25,7 +25,7 @@ add_test_compare_parallel_simulation(CASENAME spe9
SIMULATOR flow
ABS_TOL ${abs_tol_parallel}
REL_TOL ${rel_tol_parallel}
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --enable-drift-compensation=false)
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
# A test for distributed standard wells. We load distribute only along the z-axis
add_test_compare_parallel_simulation(CASENAME spe9_dist_z
@@ -34,7 +34,7 @@ add_test_compare_parallel_simulation(CASENAME spe9_dist_z
SIMULATOR flow_distribute_z
ABS_TOL ${abs_tol_parallel}
REL_TOL ${rel_tol_parallel}
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --enable-drift-compensation=false)
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
# A test for distributed standard wells with 8 processes. We load distribute only along the z-axis
add_test_compare_parallel_simulation(CASENAME spe9_dist_z_8
@@ -45,7 +45,7 @@ add_test_compare_parallel_simulation(CASENAME spe9_dist_z_8
ABS_TOL ${abs_tol_parallel}
REL_TOL ${rel_tol_parallel}
MPI_PROCS 8
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --enable-drift-compensation=false)
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
# A test for distributed multisegment wells. We load distribute only along the z-axis
add_test_compare_parallel_simulation(CASENAME msw-simple
@@ -158,7 +158,7 @@ add_test_compare_parallel_simulation(CASENAME spe3_partition_method_zoltanwell
SIMULATOR flow
ABS_TOL ${abs_tol_parallel}
REL_TOL ${coarse_rel_tol_parallel}
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --tolerance-wells=1e-7 --partition-method=zoltanwell)
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --tolerance-wells=1e-7)
add_test_compare_parallel_simulation(CASENAME spe1_solvent
FILENAME SPE1CASE2_SOLVENT
@@ -184,7 +184,7 @@ add_test_compare_parallel_simulation(CASENAME spe1_thermal
FILENAME SPE1CASE2_THERMAL
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol_parallel}}
REL_TOL ${coarse_rel_tol_parallel}
DIR spe1
TEST_ARGS --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
@@ -233,7 +233,7 @@ add_test_compare_parallel_simulation(CASENAME 3d_tran_operator
ABS_TOL ${abs_tol_parallel}
REL_TOL 0.0003
DIR parallel_fieldprops
TEST_ARGS --enable-tuning=true --enable-drift-compensation=false --relaxed-max-pv-fraction=0.0)
TEST_ARGS --enable-tuning=true --relaxed-max-pv-fraction=0)
add_test_compare_parallel_simulation(CASENAME numerical_aquifer_3d_2aqu
FILENAME 3D_2AQU_NUM
@@ -241,7 +241,7 @@ add_test_compare_parallel_simulation(CASENAME numerical_aquifer_3d_2aqu
ABS_TOL 0.17
REL_TOL ${coarse_rel_tol_parallel}
DIR aquifer-num
TEST_ARGS --tolerance-cnv=0.000003 --time-step-control=pid --linear-solver=cpr_trueimpes --enable-drift-compensation=false --relaxed-max-pv-fraction=0.0)
TEST_ARGS --tolerance-cnv=0.000003 --time-step-control=pid --linear-solver=cpr_trueimpes --relaxed-max-pv-fraction=0.0)
add_test_compare_parallel_simulation(CASENAME aquflux_01
FILENAME AQUFLUX-01
@@ -249,7 +249,7 @@ add_test_compare_parallel_simulation(CASENAME aquflux_01
ABS_TOL ${abs_tol}
REL_TOL 0.06
DIR aquifers
TEST_ARGS --enable-tuning=true --enable-drift-compensation=false --relaxed-max-pv-fraction=0.0 --tolerance-cnv=1.0e-3)
TEST_ARGS --enable-tuning=true --relaxed-max-pv-fraction=0)
add_test_compare_parallel_simulation(CASENAME aquflux_02
FILENAME AQUFLUX-02
@@ -265,7 +265,7 @@ add_test_compare_parallel_simulation(CASENAME network_balance_01
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol_parallel}
DIR network
TEST_ARGS --enable-tuning=true --time-step-control=newtoniterationcount --time-step-control-growth-rate=3.0 --relaxed-max-pv-fraction=0.0 --tolerance-cnv=1e-3)
TEST_ARGS --enable-tuning=true)
add_test_compare_parallel_simulation(CASENAME numerical_aquifer_3d_1aqu
FILENAME 3D_1AQU_3CELLS
@@ -273,7 +273,7 @@ add_test_compare_parallel_simulation(CASENAME numerical_aquifer_3d_1aqu
ABS_TOL ${abs_tol_parallel}
REL_TOL 0.05
DIR aquifer-num
TEST_ARGS --enable-tuning=true --tolerance-cnv=0.00003 --time-step-control=pid --linear-solver=cpr_trueimpes --enable-drift-compensation=false --relaxed-max-pv-fraction=0.0)
TEST_ARGS --enable-tuning=true --tolerance-cnv=0.00003 --time-step-control=pid --linear-solver=cpr_trueimpes --relaxed-max-pv-fraction=0.0)
add_test_compare_parallel_simulation(CASENAME 6_uda_model5_stdw
FILENAME 6_UDA_MODEL5_STDW
@@ -316,7 +316,7 @@ add_test_compare_parallel_simulation(CASENAME reg_smry_in_fld_udq
ABS_TOL ${abs_tol_parallel}
REL_TOL ${coarse_rel_tol_parallel}
DIR udq_actionx
TEST_ARGS --enable-tuning=true)
TEST_ARGS --enable-tuning=true --time-step-control=pid)
add_test_compare_parallel_simulation(CASENAME winjmult_msw
FILENAME WINJMULT_MSW
@@ -324,7 +324,7 @@ add_test_compare_parallel_simulation(CASENAME winjmult_msw
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR winjmult
TEST_ARGS --enable-drift-compensation=false --enable-tuning=true --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
TEST_ARGS --enable-tuning=true --linear-solver-reduction=1e-7)
add_test_compare_parallel_simulation(CASENAME winjdam_msw
FILENAME WINJDAM_MSW
@@ -332,7 +332,7 @@ add_test_compare_parallel_simulation(CASENAME winjdam_msw
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR winjdam
TEST_ARGS --enable-drift-compensation=false --enable-tuning=true --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8)
TEST_ARGS --enable-tuning=true --linear-solver-reduction=1e-7)
add_test_compare_parallel_simulation(CASENAME 3_a_mpi_multflt_mod2
FILENAME 3_A_MPI_MULTFLT_SCHED_MODEL2
@@ -348,7 +348,7 @@ add_test_compare_parallel_simulation(CASENAME rxft
ABS_TOL ${abs_tol_parallel}
REL_TOL 1.0e-3
DIR rxft_smry
TEST_ARGS --enable-tuning=true --linear-solver-reduction=1e-7 --tolerance-cnv=5e-6 --tolerance-mb=1e-8 --enable-drift-compensation=false)
TEST_ARGS --enable-tuning=true --linear-solver-reduction=1e-7)
opm_set_test_driver(${PROJECT_SOURCE_DIR}/tests/run-comparison.sh "")
+21 -22
View File
@@ -179,18 +179,18 @@ add_test_compareECLFiles(CASENAME spe1_metric_vfp1
DIR vfpprod_spe1)
add_test_compareECLFiles(CASENAME spe1_spider
FILENAME SPIDER_CAKESLICE
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR radial_grid)
FILENAME SPIDER_CAKESLICE
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR radial_grid)
add_test_compareECLFiles(CASENAME spe1_radial
FILENAME RADIAL_CAKESLICE
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR radial_grid)
FILENAME RADIAL_CAKESLICE
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR radial_grid)
add_test_compareECLFiles(CASENAME jfunc_01
FILENAME JFUNC-01
@@ -236,7 +236,7 @@ add_test_compareECLFiles(CASENAME aquflux_01
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR aquifers
TEST_ARGS --solver-max-time-step-in-days=1)
TEST_ARGS --enable-tuning=true --relaxed-max-pv-fraction=0)
add_test_compareECLFiles(CASENAME aquflux_02
FILENAME AQUFLUX-02
@@ -251,7 +251,7 @@ add_test_compareECLFiles(CASENAME spe3
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol}
TEST_ARGS --tolerance-wells=1e-6 --newton-max-iterations=20)
TEST_ARGS --tolerance-wells=1e-6)
add_test_compareECLFiles(CASENAME spe9
FILENAME SPE9_CP_SHORT
@@ -291,35 +291,33 @@ add_test_compareECLFiles(CASENAME polymer_oilwater
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
TEST_ARGS --solver-max-time-step-in-days=10 --tolerance-mb=1.e-7)
TEST_ARGS --solver-max-time-step-in-days=10)
add_test_compareECLFiles(CASENAME polymer_injectivity
FILENAME 2D_POLYMER_INJECTIVITY
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
TEST_ARGS --tolerance-mb=1.e-7 --tolerance-wells=1.e-6 --linear-solver=ilu0)
TEST_ARGS --tolerance-wells=1.e-6 --linear-solver=ilu0)
add_test_compareECLFiles(CASENAME polymer_simple2D
FILENAME 2D_THREEPHASE_POLY_HETER
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol}
TEST_ARGS --tolerance-mb=1.e-7 --tolerance-mb-relaxed=1.e-7)
TEST_ARGS --tolerance-mb-relaxed=1.e-7)
add_test_compareECLFiles(CASENAME spe5
FILENAME SPE5CASE1
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol}
TEST_ARGS --newton-max-iterations=20)
REL_TOL ${coarse_rel_tol})
add_test_compareECLFiles(CASENAME spe5_co2eor
FILENAME SPE5CASE1_DYN
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${coarse_rel_tol}
TEST_ARGS --newton-max-iterations=20)
REL_TOL ${coarse_rel_tol})
add_test_compareECLFiles(CASENAME wecon_wtest
FILENAME 3D_WECON
@@ -563,7 +561,7 @@ add_test_compareECLFiles(CASENAME reg_smry_in_fld_udq
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR udq_actionx
TEST_ARGS --enable-tuning=true)
TEST_ARGS --enable-tuning=true --time-step-control=pid)
# UDQ ASSIGN for subsets of group level UDQs. Updates triggered from
# ACTIONX blocks.
@@ -848,7 +846,8 @@ add_test_compareECLFiles(CASENAME 3d_tran_operator
SIMULATOR flow
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR parallel_fieldprops)
DIR parallel_fieldprops
TEST_ARGS --enable-tuning=true --relaxed-max-pv-fraction=0)
add_test_compareECLFiles(CASENAME micp
FILENAME MICP
@@ -956,7 +955,7 @@ add_test_compareECLFiles(CASENAME rxft_smry
ABS_TOL ${abs_tol}
REL_TOL ${rel_tol}
DIR rxft_smry
TEST_ARGS --enable-tuning=true)
TEST_ARGS --enable-tuning=true --linear-solver-reduction=1e-7)
add_test_compareECLFiles(CASENAME bo_diffusion
FILENAME BO_DIFFUSE_CASE1
@@ -7,7 +7,7 @@
#include <limits>
#include <algorithm>
#define BOOST_TEST_MODULE TestTuningXXXMBE
#define BOOST_TEST_MODULE TestTuningTRGMBE
#include <boost/test/unit_test.hpp>
struct Column : public std::vector<std::string>
@@ -114,10 +114,10 @@ struct ColumnData
std::map<std::string, Column*> columns;
};
BOOST_AUTO_TEST_CASE(CheckMassBalanceWithinXXXMBE)
BOOST_AUTO_TEST_CASE(CheckMassBalanceWithinTRGMBE)
{
//std::string case_name(boost::unit_test::framework::master_test_suite().argv[1]);
std::string case_name("01_TUNING_XXXMBE");
std::string case_name("01_TUNING_TRGMBE");
std::string file_name = case_name + ".INFOITER";
ColumnData data(file_name);
@@ -157,7 +157,7 @@ BOOST_AUTO_TEST_CASE(CheckMassBalanceWithinXXXMBE)
BOOST_TEST_MESSAGE("---------------------------------------------------------------------------");
BOOST_CHECK_MESSAGE( max_mb[0] < 1.0e-6, "max_mb[0] (= " << max_mb[0] << ") is not strictly less than 1.0e-6" );
BOOST_CHECK_MESSAGE( max_mb[0] < 1.0e-7, "max_mb[0] (= " << max_mb[0] << ") is not strictly less than 1.0e-7" );
BOOST_CHECK_MESSAGE( max_mb[1] < 1.0e-8, "max_mb[1] (= " << max_mb[1] << ") is not strictly less than 1.0e-8" );
BOOST_CHECK_MESSAGE( max_mb[2] < 1.0e-10, "max_mb[2] (= " << max_mb[1] << ") is not strictly less than 1.0e-10" );
}