From e6f787ee137233a69fa5ac10bc126025895ef4d0 Mon Sep 17 00:00:00 2001
From: Ian Bell <ian.bell@nist.gov>
Date: Fri, 27 May 2022 10:13:39 -0400
Subject: [PATCH] Even more derivs in Ar0n check

---
 src/tests/catch_tests.cxx | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/tests/catch_tests.cxx b/src/tests/catch_tests.cxx
index 7d92a0f..ef7e763 100644
--- a/src/tests/catch_tests.cxx
+++ b/src/tests/catch_tests.cxx
@@ -218,6 +218,30 @@ TEST_CASE("Check 0n derivatives", "[PCSAFT]")
     CHECK(std::abs(Ar01 - Ar01mp) < 1e-13);
     CHECK(std::abs(Ar01 - Ar01mcx) < 1e-13);
     CHECK(std::abs(Ar01 - Ar01csd) < 1e-13);
+
+    auto Ar03 = tdx::get_Arxy<0,3>(model, T, rho, molefrac);
+    auto Ar03n = tdx::get_Ar0n<3>(model, T, rho, molefrac)[3];
+    auto Ar03mp = static_cast<double>((D*D*D)*centered_diff<3, 4>(fD, D, h));
+    auto Ar03mcx = tdx::get_Ar0n<3,ADBackends::multicomplex>(model, T, rho, molefrac)[3];
+    CAPTURE(Ar03);
+    CAPTURE(Ar03n);
+    CAPTURE(Ar03mp);
+    CAPTURE(Ar03mcx);
+    CHECK(std::abs(Ar03 - Ar03n) < 1e-13);
+    CHECK(std::abs(Ar03 - Ar03mp) < 1e-13);
+    CHECK(std::abs(Ar03 - Ar03mcx) < 1e-13);
+
+    auto Ar04 = tdx::get_Arxy<0,4>(model, T, rho, molefrac);
+    auto Ar04n = tdx::get_Ar0n<4>(model, T, rho, molefrac)[4];
+    auto Ar04mp = static_cast<double>((D*D*D*D)*centered_diff<4, 4>(fD, D, h));
+    auto Ar04mcx = tdx::get_Ar0n<4,ADBackends::multicomplex>(model, T, rho, molefrac)[4];
+    CAPTURE(Ar04);
+    CAPTURE(Ar04n);
+    CAPTURE(Ar04mp);
+    CAPTURE(Ar04mcx);
+    CHECK(std::abs(Ar04 - Ar04n) < 1e-13);
+    CHECK(std::abs(Ar04 - Ar04mp) < 1e-13);
+    CHECK(std::abs(Ar04 - Ar04mcx) < 1e-13);
 }
 
 TEST_CASE("Test all vdW derivatives good to numerical precision", "[vdW]") 
-- 
GitLab