From 9643882b8bd85ec1d41242f2886ba15c13a65f00 Mon Sep 17 00:00:00 2001
From: Boris Martin <boris.martin@uliege.be>
Date: Wed, 14 May 2025 10:46:17 +0200
Subject: [PATCH] Added reversed condition for ORAS

---
 .../helmholtz/comparisonORAS/OO2Configs.h     | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/examples/helmholtz/comparisonORAS/OO2Configs.h b/examples/helmholtz/comparisonORAS/OO2Configs.h
index 288bdd0f..683d46fc 100644
--- a/examples/helmholtz/comparisonORAS/OO2Configs.h
+++ b/examples/helmholtz/comparisonORAS/OO2Configs.h
@@ -85,11 +85,36 @@ class TaylorOrderTwo : public AbstractOO2Config
 
   OO2 coefs(gmshfem::function::ScalarFunction<PetscScalar> k) const override
   {
+    // For operator a + b*laplacian, not b grad grad
     return {im * k * cos(_alpha / 2),
             im / (2.0 * k) * PetscScalar(cos(_alpha / 2), +sin(-_alpha / 2))};
   }
 };
 
+class TaylorOrderTwoFlipped : public AbstractOO2Config
+{
+ public:
+  double _alpha = 0;
+  std::string _name;
+
+  TaylorOrderTwoFlipped(std::string name, double alpha) :
+    _alpha(alpha), _name(name)
+  {
+  }
+
+  std::string name() const override
+  {
+    return _name;
+  }
+
+  OO2 coefs(gmshfem::function::ScalarFunction<PetscScalar> k) const override
+  {
+    // Flipped in ORAS
+    return {im * k * cos(_alpha / 2),
+            -im / (2.0 * k) * PetscScalar(cos(_alpha / 2), +sin(-_alpha / 2))};
+  }
+};
+
 class SommerfeldSecondOrderDamping : public AbstractOO2Config
 {
  public:
-- 
GitLab