240TEST(PorousFlowVanGenuchtenTest, caphys)
244 const std::vector<Real> no_ext_sats{1.1, 0.75, 0.2, 0.4, 0.6};
245 const std::vector<Real> expected_pcs{
246 0.0, 0.0, 0.7233512030263158, 0.18806139488299345, 0.06716785873826017};
247 for (
unsigned i = 0; i < no_ext_sats.size(); ++i)
249 EXPECT_NEAR(expected_pcs[i],
253 EXPECT_NEAR(expected_pcs[i],
265 EXPECT_NEAR(std::numeric_limits<Real>::max(),
268 EXPECT_NEAR(std::numeric_limits<Real>::max(),
273 EXPECT_NEAR(0.15229665668299805,
low_ext_exp.
S, 1.0E-5);
281 const std::vector<Real> sats{0.01, 0.1, 0.15, 0.2, 0.5, 0.63, 0.8, 0.99, 1.0};
282 std::vector<Real> pc;
283 pc = {31.385947046636815,
289 0.006681337544884095,
290 2.7847615834816514e-07,
292 for (
unsigned i = 0; i < sats.size(); ++i)
299 pc = {3.9304232526771696,
305 0.006681337544884095,
306 2.7847615834816514e-07,
308 for (
unsigned i = 0; i < sats.size(); ++i)
321 0.006681337544884095,
322 2.7847615834816514e-07,
324 for (
unsigned i = 0; i < sats.size(); ++i)
331 pc = {1.5, 1.5, 1.5, 0.7233512030263158, 0.11727884570711045, 0.05300654102157442, 0.0, 0.0, 0.0};
332 for (
unsigned i = 0; i < sats.size(); ++i)
340TEST(PorousFlowVanGenuchtenTest, sathys)
344 const std::vector<Real> expected_sats{1.0, 0.2, 0.4, 0.6};
345 const std::vector<Real> no_ext_pcs{
346 -1.1, 0.7233512030263158, 0.18806139488299345, 0.06716785873826017};
347 for (
unsigned i = 0; i < no_ext_pcs.size(); ++i)
349 EXPECT_NEAR(expected_sats[i],
353 EXPECT_NEAR(expected_sats[i],
367 std::vector<Real> sats{0.01, 0.1, 0.15, 0.2, 0.5, 0.63, 0.8, 0.99, 1.0};
368 std::vector<Real> pc;
369 pc = {31.385947046636815,
375 0.006681337544884095,
376 2.7847615834816514e-07,
378 for (
unsigned i = 0; i < sats.size(); ++i)
385 pc = {3.9304232526771696,
391 0.006681337544884095,
392 2.7847615834816514e-07,
394 for (
unsigned i = 0; i < sats.size(); ++i)
407 0.006681337544884095,
408 2.7847615834816514e-07,
410 for (
unsigned i = 0; i < sats.size(); ++i)
417 pc = {2.5, 1.5, 0.7233512030263158, 0.11727884570711045, 0.05300654102157442, 1E-10};
419 for (
unsigned i = 0; i < sats.size(); ++i)
427TEST(PorousFlowVanGenuchtenTest, dcaphys)
429 const Real
eps = 1.0E-9;
433 std::vector<Real> sats{1.1, 0.75, -1.0, 0.05};
434 for (
const auto & sat : sats)
444 sats = {0.2, 0.4, 0.6};
445 for (
const auto & sat : sats)
447 const Real fd = 0.5 *
460 sats = {0.01, 0.1, 0.15, 0.2, 0.5, 0.63, 0.8, 0.99, 1.0};
462 for (
const auto & sat : sats)
464 const Real fd = 0.5 *
477 for (
const auto & sat : sats)
479 const Real fd = 0.5 *
492 for (
const auto & sat : sats)
494 const Real fd = 0.5 *
507 sats = {0.01, 0.1, 0.15, 0.2, 0.5, 0.8, 0.99, 1.0};
508 for (
const auto & sat : sats)
510 const Real fd = 0.5 *
524TEST(PorousFlowVanGenuchtenTest, d2caphys)
526 const Real
eps = 1.0E-9;
530 std::vector<Real> sats{1.1, 0.75, -1.0, 0.05};
531 for (
const auto & sat : sats)
541 sats = {0.2, 0.4, 0.6};
542 for (
const auto & sat : sats)
558 sats = {0.01, 0.1, 0.15, 0.2, 0.5, 0.6, 0.7, 0.8, 0.99, 1.0};
560 for (
const auto & sat : sats)
562 const Real fd = 0.5 *
568 if (std::abs(fd) > 10)
581 for (
const auto & sat : sats)
583 const Real fd = 0.5 *
589 if (std::abs(fd) > 10)
602 for (
const auto & sat : sats)
604 const Real fd = 0.5 *
610 if (std::abs(fd) > 10)
623 sats = {0.01, 0.1, 0.15, 0.2, 0.5, 0.8, 0.99, 1.0};
624 for (
const auto & sat : sats)
626 const Real fd = 0.5 *
632 if (std::abs(fd) > 10)
866TEST(PorousFlowVanGenuchtenTest, relativePermeabilityHys)
871 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
875 0.2, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
877 EXPECT_NEAR(0.002847974503642625,
879 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
881 EXPECT_NEAR(0.002847974503642625,
883 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
885 EXPECT_NEAR(0.05828443549816974,
887 0.5, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
889 EXPECT_NEAR(0.10056243969693253,
891 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
893 EXPECT_NEAR(0.08943153676247108,
895 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
897 EXPECT_NEAR(0.3159149169921876,
899 0.8, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
901 EXPECT_NEAR(0.8011290515690178,
903 0.95, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
909 0.1, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
913 0.2, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
915 EXPECT_NEAR(0.005858393312913491,
917 0.3, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
919 EXPECT_NEAR(0.002847974503642625,
921 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
923 EXPECT_NEAR(0.1363562523627124,
925 0.55, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
929 0.7, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
931 EXPECT_NEAR(0.8011290515690178,
933 0.95, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
938TEST(PorousFlowVanGenuchtenTest, drelativePermeabilityHys)
944 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
947 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
949 0.3 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
951 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
955 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
957 0.3 +
eps, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
959 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
963 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
965 0.55 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
967 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
971 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
973 0.55 +
eps, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
975 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
979 0.8, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
981 0.8 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
983 0.8, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
987 0.95, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
989 0.95 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
991 0.95, 0.2, 0.15, 0.25, 0.5, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
997 0.1, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1000 0.3, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1002 0.3 +
eps, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
1004 0.3, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
1008 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1010 0.3 +
eps, 0.2, 0.0, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
1012 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
1016 0.55, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1018 0.55 +
eps, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
1020 0.55, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
1024 0.7, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1026 0.7 +
eps, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
1028 0.7, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
1032 0.95, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2),
1034 0.95 +
eps, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2) -
1036 0.95, 0.2, 0.15, 0.25, 0.15, 0.9, 0.9, 0.3, 0.5, 0.45, 2.2)) /
1042TEST(PorousFlowVanGenuchtenTest, relativePermeabilityNWHys)
1045 EXPECT_NEAR(0.91875,
1047 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1051 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 1.0, -0.75),
1055 0.2, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1057 EXPECT_NEAR(0.6368139633459233,
1059 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1061 EXPECT_NEAR(0.6368139633459233,
1063 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1065 EXPECT_NEAR(0.33222054246699,
1067 0.5, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1069 EXPECT_NEAR(0.24397255389213568,
1071 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1073 EXPECT_NEAR(0.2691316236913443,
1075 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1077 EXPECT_NEAR(0.01509148277290631,
1079 0.85, 0.2, 0.05, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1083 0.85, 0.2, 0.18, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1087 EXPECT_NEAR(0.91875,
1089 0.1, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1093 0.1, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 1.0, -0.75),
1097 0.2, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1099 EXPECT_NEAR(0.5616820966427329,
1101 0.3, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1103 EXPECT_NEAR(0.6368139633459233,
1105 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1107 EXPECT_NEAR(0.11086138435665097,
1109 0.55, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1113 0.76, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1118TEST(PorousFlowVanGenuchtenTest, drelativePermeabilityNWHys)
1123 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1125 0.1 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1127 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1132 0.1, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 1.0, -0.75),
1135 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1137 0.3 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1139 0.3, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1143 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1145 0.3 +
eps, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1147 0.3, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1151 0.45, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1153 0.45 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1155 0.45, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1159 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1161 0.55 +
eps, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1163 0.55, 0.2, 0.15, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1167 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1169 0.55 +
eps, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1171 0.55, 0.2, 0.0, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1175 0.85, 0.2, 0.05, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1177 0.85 +
eps, 0.2, 0.05, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75) -
1179 0.85, 0.2, 0.05, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75)) /
1184 0.85, 0.2, 0.18, 0.25, 0.5, 0.9, 0.3, 0.8, -0.75),
1189 0.1, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1191 0.1 +
eps, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75) -
1193 0.1, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75)) /
1198 0.1, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 1.0, -0.75),
1201 0.3, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1203 0.3 +
eps, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75) -
1205 0.3, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75)) /
1209 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1211 0.3 +
eps, 0.2, 0.0, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75) -
1213 0.3, 0.2, 0.0, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75)) /
1217 0.55, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),
1219 0.55 +
eps, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75) -
1221 0.55, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75)) /
1226 0.76, 0.2, 0.18, 0.25, 0.15, 0.9, 0.3, 0.8, -0.75),