From 86f5fd63f76a103356c074cd5636237e82e72297 Mon Sep 17 00:00:00 2001
From: Paul Dechamps <paul.dechamps@uliege.be>
Date: Mon, 27 Jan 2025 16:27:43 +0100
Subject: [PATCH] (feat) Added warning when inviscid and viscous freestream
 Mach numbers are different

---
 blast/interfaces/blSolversInterface.py | 8 ++++++++
 blast/src/blDriver.h                   | 2 ++
 blast/src/blSolver.h                   | 1 +
 3 files changed, 11 insertions(+)

diff --git a/blast/interfaces/blSolversInterface.py b/blast/interfaces/blSolversInterface.py
index 724bdff..9561448 100644
--- a/blast/interfaces/blSolversInterface.py
+++ b/blast/interfaces/blSolversInterface.py
@@ -3,6 +3,7 @@ import blast
 import fwk
 import tbox
 from blast.interfaces.blDataStructure import Group
+from fwk.coloring import ccolors
 
 class SolversInterface:
     """
@@ -45,6 +46,8 @@ class SolversInterface:
 
         if 'nSections' not in self.cfg:
             self.cfg['nSections'] = len(self.cfg['sections'])
+        if self.getMinf() != self.vSolver.getMinf():
+            print(ccolors.ANSI_YELLOW, 'Warning: Inviscid and viscous freestream Mach numbers are different', ccolors.ANSI_RESET)
 
         # Initialize data structures.
         self.iBnd = [Group('iWing' if iReg == 0 else 'iWake', self.getnDim()) for iReg in range(2)]
@@ -459,6 +462,11 @@ class SolversInterface:
         """
         raise NotImplementedError('SolverInterface - getAoA not implemented')
 
+    def getMinf(self)->float:
+        """Get freestream Mach number
+        """
+        raise NotImplementedError('SolverInterface - getMinf not implemented')
+
     def getCl(self)->float:
         """Get lift coefficient
         """
diff --git a/blast/src/blDriver.h b/blast/src/blDriver.h
index fc1be8b..601a9a8 100644
--- a/blast/src/blDriver.h
+++ b/blast/src/blDriver.h
@@ -2,6 +2,7 @@
 #define BLDRIVER_H
 
 #include "blBoundaryLayer.h"
+#include "blSolver.h"
 #include "blast.h"
 #include "wObject.h"
 #include "wTimers.h"
@@ -50,6 +51,7 @@ public:
     // Getters.
     double getAverageTransition(size_t const iRegion) const;
     double getRe() const { return Re; }
+    double getMinf() const { return tSolver->getMinf(); }
     std::vector<std::vector<double>> getSolution(size_t iSec);
 
     // Setters.
diff --git a/blast/src/blSolver.h b/blast/src/blSolver.h
index 489062d..8f33bcd 100644
--- a/blast/src/blSolver.h
+++ b/blast/src/blSolver.h
@@ -34,6 +34,7 @@ public:
 
     // Getters.
     double getCFL0() const { return CFL0; }
+    double getMinf() const { return Minf; }
     unsigned int getmaxIt() const { return maxIt; }
     unsigned int getitFrozenJac() const { return itFrozenJac0; }
 
-- 
GitLab