Skip to content
Snippets Groups Projects
catch_test_multifluid.cxx 1.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • #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();
        }
    }