From b88d528383809c565ab38682df3bba62fe232a2f Mon Sep 17 00:00:00 2001
From: acrovato <adrien.crovato@onera.fr>
Date: Fri, 14 Feb 2025 09:16:38 +0100
Subject: [PATCH] Add tolerance on bounds for transition averaging.

---
 blast/src/blDriver.cpp | 34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

diff --git a/blast/src/blDriver.cpp b/blast/src/blDriver.cpp
index b2bd2ca..31483c2 100644
--- a/blast/src/blDriver.cpp
+++ b/blast/src/blDriver.cpp
@@ -278,24 +278,28 @@ void Driver::averageTransition(size_t iPoint, BoundaryLayer *bl, bool forced)
 
     double avTurb =
         (bl->xoc[iPoint] - bl->xtr) / (bl->xoc[iPoint] - bl->xoc[iPoint - 1]);
+	if (avTurb < 0. - 1e-12)
+		avTurb = 0.;
+	if (avTurb > 1. + 1e-12)
+		avTurb = 1.;
     double avLam = 1. - avTurb;
 
     // std::cout << "avTurb " << avTurb << " avLam " << avLam << std::endl;
-    if (avTurb < 0. || avTurb > 1. || avLam < 0. || avLam > 1.)
-    {
-        bl->printSolution(iPoint);
-        bl->printSolution(iPoint - 1);
-        std::cout << "dx " << std::abs(bl->xoc[iPoint] - bl->xoc[iPoint - 1])
-                  << std::endl;
-        std::cout << " (bl->u[iPoint * nVar + 2] - bl->u[(iPoint - 1) * nVar + 2]) "
-                  << (bl->u[iPoint * nVar + 2] - bl->u[(iPoint - 1) * nVar + 2])
-                  << std::endl;
-        std::cout << " bl->getnCrit() - bl->u[(iPoint - 1) * nVar + 2] "
-                  << bl->getnCrit() - bl->u[(iPoint - 1) * nVar + 2] << std::endl;
-        std::cout << "xtr " << bl->xtr << std::endl;
-        std::cout << "avTurb " << avTurb << " avLam " << avLam << std::endl;
-        throw std::runtime_error("Transition location out of bounds.");
-    }
+    //if (avTurb < 0. || avTurb > 1. || avLam < 0. || avLam > 1.)
+    //{
+    //    bl->printSolution(iPoint);
+    //    bl->printSolution(iPoint - 1);
+    //    std::cout << "dx " << std::abs(bl->xoc[iPoint] - bl->xoc[iPoint - 1])
+    //              << std::endl;
+    //    std::cout << " (bl->u[iPoint * nVar + 2] - bl->u[(iPoint - 1) * nVar + 2]) "
+    //              << (bl->u[iPoint * nVar + 2] - bl->u[(iPoint - 1) * nVar + 2])
+    //              << std::endl;
+    //    std::cout << " bl->getnCrit() - bl->u[(iPoint - 1) * nVar + 2] "
+    //              << bl->getnCrit() - bl->u[(iPoint - 1) * nVar + 2] << std::endl;
+    //    std::cout << "xtr " << bl->xtr << std::endl;
+    //    std::cout << "avTurb " << avTurb << " avLam " << avLam << std::endl;
+    //    throw std::runtime_error("Transition location out of bounds.");
+    //}
 
     // Impose boundary condition.
     double Cteq_trans;
-- 
GitLab