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