Newer
Older
#include "catch/catch.hpp"
#include "teqp/models/multifluid.hpp"
#include "teqp/algorithms/critical_tracing.hpp"
TEST_CASE("Confirm failure for missing files","[multifluid]") {
CHECK_THROWS(build_multifluid_model({ "BADFLUID" }, "IMPOSSIBLE PATH", "IMPOSSIBLE PATH.json"));
CHECK_THROWS(build_multifluid_model({ "BADFLUID" }, "IMPOSSIBLE PATH", "../mycp/dev/mixtures/mixture_binary_pairs.json"));
}
TEST_CASE("Trace critical locus for nitrogen + ethane", "[crit],[multifluid]")
{
std::string root = "../mycp";
const auto model = build_multifluid_model({ "Nitrogen", "Ethane" }, root, root+"/dev/mixtures/mixture_binary_pairs.json");
for (auto ifluid = 0; ifluid < 2; ++ifluid) {
double T0 = model.redfunc.Tc[ifluid];
Eigen::ArrayXd rhovec0(2); rhovec0 = 0.0; rhovec0[ifluid] = 1.0 / model.redfunc.vc[ifluid];
auto tic0 = std::chrono::steady_clock::now();
std::string filename = "h";
using ct = CriticalTracing<decltype(model), double, Eigen::ArrayXd>;
auto j = ct::trace_critical_arclength_binary(model, T0, rhovec0, filename);
CHECK(j.size() > 3);
auto tic1 = std::chrono::steady_clock::now();
}
}