From 41ccda612f15a3e1201641a7785da4141efa95a0 Mon Sep 17 00:00:00 2001
From: Stephan Hilb <stephan@ecshi.net>
Date: Sun, 23 Jan 2022 09:57:47 +0100
Subject: [PATCH] add l1 integral symbolic calculation script

---
 scripts/symbolic_calculations.jl | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 scripts/symbolic_calculations.jl

diff --git a/scripts/symbolic_calculations.jl b/scripts/symbolic_calculations.jl
new file mode 100644
index 0000000..2b98fc4
--- /dev/null
+++ b/scripts/symbolic_calculations.jl
@@ -0,0 +1,19 @@
+using Reduce
+
+# explicitly calculate l1 integral over reference triangle with first order
+# lagrange discretization
+function l1triangle()
+    integrand_2 = :(abs(u0 * (1-x1-x2) + u1 * x1 + u2 * x2))
+
+    integral_2 = Reduce.Algebra.int(integrand_2, :x2)
+    integrand_1 = Reduce.Algebra.:-(
+        Reduce.Algebra.sub(:x2 => :(1 - x1), integral_2),
+        Reduce.Algebra.sub(:x2 => 0, integral_2))
+
+    integral_1 = Reduce.Algebra.int(integrand_1, :x1)
+    result = Reduce.Algebra.:-(
+        Reduce.Algebra.sub(:x1 => 1, integral_1),
+        Reduce.Algebra.sub(:x1 => 0, integral_1))
+
+    return result
+end
-- 
GitLab