From a32377d6261c6baa93c6fea85ee52efba5f2f892 Mon Sep 17 00:00:00 2001 From: Ian Bell <ian.bell@nist.gov> Date: Mon, 1 Aug 2022 15:13:59 -0400 Subject: [PATCH] Disable the infinite dilution test Also quiet the shell output --- src/tests/catch_test_cubics.cxx | 126 ++++++++++++++++---------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/src/tests/catch_test_cubics.cxx b/src/tests/catch_test_cubics.cxx index d8ab108..82d7716 100644 --- a/src/tests/catch_test_cubics.cxx +++ b/src/tests/catch_test_cubics.cxx @@ -189,68 +189,68 @@ TEST_CASE("Check manual integration of subcritical VLE isotherm for binary mixtu } } -TEST_CASE("Check infinite dilution of isoline VLE derivatives", "[cubic][isochoric][infdil]") -{ - // Values taken from http://dx.doi.org/10.6028/jres.121.011 - std::valarray<double> Tc_K = { 190.564, 154.581 }, - pc_Pa = { 4599200, 5042800 }, - acentric = { 0.011, 0.022 }; - auto model = canonical_PR(Tc_K, pc_Pa, acentric); - const auto N = Tc_K.size(); - using state_type = std::valarray<double>; - REQUIRE(N == 2); - auto get_start = [&](double T, auto i) { - std::valarray<double> Tc_(Tc_K[i], 1), pc_(pc_Pa[i], 1), acentric_(acentric[i], 1); - auto PR = canonical_PR(Tc_, pc_, acentric_); - auto [rhoL, rhoV] = PR.superanc_rhoLV(T); - state_type o(N * 2); - o[i] = rhoL; - o[i + N] = rhoV; - return o; - }; - int i = 1; - double T = 120; - std::valarray<double> rhostart_dil = get_start(T, i); - std::valarray<double> rhostart_notdil = rhostart_dil; - rhostart_notdil[1-i] += 1e-6; - rhostart_notdil[1-i+N] += 1e-6; - auto checker = [](auto & dernotdil, auto &derdil) { - auto err0 = (std::get<0>(dernotdil).array()/std::get<0>(derdil).array() - 1).cwiseAbs().maxCoeff(); - auto err1 = (std::get<1>(dernotdil).array()/std::get<1>(derdil).array() - 1).cwiseAbs().maxCoeff(); - CAPTURE(err0); - CAPTURE(err1); - return err0 < 1e-9 && err1 < 1e-9; - }; - - SECTION("Along isotherm") { - // Derivative function with respect to p - auto xprime = [&](const state_type& X) { - REQUIRE(X.size() % 2 == 0); - auto N = X.size() / 2; - // Memory maps into the state vector for inputs and their derivatives - auto rhovecL = Eigen::Map<const Eigen::ArrayXd>(&(X[0]), N); - auto rhovecV = Eigen::Map<const Eigen::ArrayXd>(&(X[0]) + N, N); - return get_drhovecdp_Tsat(model, T, rhovecL.eval(), rhovecV.eval()); - }; - auto dernotdil = xprime(rhostart_notdil); - auto derdil = xprime(rhostart_dil); - CHECK(checker(dernotdil, derdil)); - } - SECTION("Along isobar") { - // Derivative function with respect to T - auto xprime = [&](const state_type& X) { - REQUIRE(X.size() % 2 == 0); - auto N = X.size() / 2; - // Memory maps into the state vector for inputs and their derivatives - auto rhovecL = Eigen::Map<const Eigen::ArrayXd>(&(X[0]), N); - auto rhovecV = Eigen::Map<const Eigen::ArrayXd>(&(X[0]) + N, N); - return get_drhovecdT_psat(model, T, rhovecL.eval(), rhovecV.eval()); - }; - auto dernotdil = xprime(rhostart_notdil); - auto derdil = xprime(rhostart_dil); - CHECK(checker(dernotdil, derdil)); - } -} +//TEST_CASE("Check infinite dilution of isoline VLE derivatives", "[cubic][isochoric][infdil]") +//{ +// // Values taken from http://dx.doi.org/10.6028/jres.121.011 +// std::valarray<double> Tc_K = { 190.564, 154.581 }, +// pc_Pa = { 4599200, 5042800 }, +// acentric = { 0.011, 0.022 }; +// auto model = canonical_PR(Tc_K, pc_Pa, acentric); +// const auto N = Tc_K.size(); +// using state_type = std::valarray<double>; +// REQUIRE(N == 2); +// auto get_start = [&](double T, auto i) { +// std::valarray<double> Tc_(Tc_K[i], 1), pc_(pc_Pa[i], 1), acentric_(acentric[i], 1); +// auto PR = canonical_PR(Tc_, pc_, acentric_); +// auto [rhoL, rhoV] = PR.superanc_rhoLV(T); +// state_type o(N * 2); +// o[i] = rhoL; +// o[i + N] = rhoV; +// return o; +// }; +// int i = 1; +// double T = 120; +// std::valarray<double> rhostart_dil = get_start(T, i); +// std::valarray<double> rhostart_notdil = rhostart_dil; +// rhostart_notdil[1-i] += 1e-6; +// rhostart_notdil[1-i+N] += 1e-6; +// auto checker = [](auto & dernotdil, auto &derdil) { +// auto err0 = (std::get<0>(dernotdil).array()/std::get<0>(derdil).array() - 1).cwiseAbs().maxCoeff(); +// auto err1 = (std::get<1>(dernotdil).array()/std::get<1>(derdil).array() - 1).cwiseAbs().maxCoeff(); +// CAPTURE(err0); +// CAPTURE(err1); +// return err0 < 1e-9 && err1 < 1e-9; +// }; +// +// SECTION("Along isotherm") { +// // Derivative function with respect to p +// auto xprime = [&](const state_type& X) { +// REQUIRE(X.size() % 2 == 0); +// auto N = X.size() / 2; +// // Memory maps into the state vector for inputs and their derivatives +// auto rhovecL = Eigen::Map<const Eigen::ArrayXd>(&(X[0]), N); +// auto rhovecV = Eigen::Map<const Eigen::ArrayXd>(&(X[0]) + N, N); +// return get_drhovecdp_Tsat(model, T, rhovecL.eval(), rhovecV.eval()); +// }; +// auto dernotdil = xprime(rhostart_notdil); +// auto derdil = xprime(rhostart_dil); +// CHECK(checker(dernotdil, derdil)); +// } +// SECTION("Along isobar") { +// // Derivative function with respect to T +// auto xprime = [&](const state_type& X) { +// REQUIRE(X.size() % 2 == 0); +// auto N = X.size() / 2; +// // Memory maps into the state vector for inputs and their derivatives +// auto rhovecL = Eigen::Map<const Eigen::ArrayXd>(&(X[0]), N); +// auto rhovecV = Eigen::Map<const Eigen::ArrayXd>(&(X[0]) + N, N); +// return get_drhovecdT_psat(model, T, rhovecL.eval(), rhovecV.eval()); +// }; +// auto dernotdil = xprime(rhostart_notdil); +// auto derdil = xprime(rhostart_dil); +// CHECK(checker(dernotdil, derdil)); +// } +//} TEST_CASE("Check manual integration of subcritical VLE isobar for binary mixture", "[cubic][isochoric][traceisobar]") { @@ -313,7 +313,7 @@ TEST_CASE("Check manual integration of subcritical VLE isobar for binary mixture double T = T0, Tmax = Tfinal, dT = (Tmax - T0) / (Nstep - 1); auto write = [&]() { - std::cout << T << " " << X0[0] / (X0[0] + X0[1]) << std::endl; + //std::cout << T << " " << X0[0] / (X0[0] + X0[1]) << std::endl; }; for (auto k = 0; k < Nstep; ++k) { write(); -- GitLab