From 5a3117aea21f203a7e3351145103904cc3c03def Mon Sep 17 00:00:00 2001
From: HOCH PHILIPPE <philippe.hoch@gmail.com>
Date: Tue, 6 May 2025 23:28:10 +0200
Subject: [PATCH] Adding Roe composite under Flux Form 2D and 3D suite

---
 .../modules/CompositeSchemeModule.cpp         | 37 +++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/src/language/modules/CompositeSchemeModule.cpp b/src/language/modules/CompositeSchemeModule.cpp
index 8c8a7f4d5..ff66e8d1f 100644
--- a/src/language/modules/CompositeSchemeModule.cpp
+++ b/src/language/modules/CompositeSchemeModule.cpp
@@ -10,6 +10,7 @@
 #include <language/modules/ModuleRepository.hpp>
 
 #include <scheme/AcousticCompositeSolver.hpp>
+#include <scheme/RoeFluxFormEulerianCompositeSolver_v2.hpp>
 #include <scheme/RoeViscousFormEulerianCompositeSolver_v2.hpp>
 #include <scheme/RoeViscousFormEulerianCompositeSolver_v2_o2.hpp>
 #include <scheme/RusanovEulerianCompositeSolver.hpp>
@@ -174,6 +175,42 @@ CompositeSchemeModule::CompositeSchemeModule()
                                 return rusanovEulerianCompositeSolver_v2(rho, u, E, gamma, c, p,   // degree,
                                                                          bc_descriptor_list, dt, true);
                               }));
+
+  this->_addBuiltinFunction("roe_fluxform_eulerian_composite_solver_version2",
+                            std::function(
+                              [](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& u,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& E, const double& gamma,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& c,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& p,   // const size_t& degree,
+                                 const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
+                                   bc_descriptor_list,
+                                 const double& dt) -> std::tuple<std::shared_ptr<const DiscreteFunctionVariant>,
+                                                                 std::shared_ptr<const DiscreteFunctionVariant>,
+                                                                 std::shared_ptr<const DiscreteFunctionVariant>> {
+                                return roeFluxFormEulerianCompositeSolver_v2(rho, u, E, gamma, c, p,   // degree,
+                                                                             bc_descriptor_list, dt);
+                              }
+
+                              ));
+
+  this->_addBuiltinFunction("roe_fluxform_eulerian_composite_solver_version2_with_checks",
+                            std::function(
+                              [](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& u,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& E, const double& gamma,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& c,
+                                 const std::shared_ptr<const DiscreteFunctionVariant>& p,   // const size_t& degree,
+                                 const std::vector<std::shared_ptr<const IBoundaryConditionDescriptor>>&
+                                   bc_descriptor_list,
+                                 const double& dt) -> std::tuple<std::shared_ptr<const DiscreteFunctionVariant>,
+                                                                 std::shared_ptr<const DiscreteFunctionVariant>,
+                                                                 std::shared_ptr<const DiscreteFunctionVariant>> {
+                                return roeFluxFormEulerianCompositeSolver_v2(rho, u, E, gamma, c, p,   // degree,
+                                                                             bc_descriptor_list, dt, true);
+                              }
+
+                              ));
   this->_addBuiltinFunction("roe_viscosityform_eulerian_composite_solver_version2",
                             std::function(
                               [](const std::shared_ptr<const DiscreteFunctionVariant>& rho,
-- 
GitLab