From e9d3530c4caf18556f5c813d2e12194d31bd4d55 Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Mon, 3 Sep 2012 17:05:34 +0200
Subject: [PATCH] Make dirichlet values time independent

---
 src/one-body-sample.cc | 4 +++-
 src/one-body-sample.py | 9 ++++-----
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 427ec512..769ecb8e 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -249,8 +249,10 @@ int main(int argc, char *argv[]) {
         stiffnessMatrix.mmv(u, rhs);
         // Apply Dirichlet condition
         for (size_t i = 0; i < finestSize; ++i)
-          if (ignoreNodes[i].count() == dim)
+          if (ignoreNodes[i].count() == dim) {
             dirichletFunction.evaluate(time, u_diff[i][0]);
+            u_diff[i][0] /= timesteps;
+          }
 
         auto const state_fpi_max =
             parset.get<size_t>("solver.tnnmg.fixed_point_iterations");
diff --git a/src/one-body-sample.py b/src/one-body-sample.py
index cd062556..db967172 100644
--- a/src/one-body-sample.py
+++ b/src/one-body-sample.py
@@ -11,14 +11,13 @@ class neumannCondition:
         else:
             return trd * (x - 2.0/3) + (fst + snd) * 1.0/3
 
-## FIXME: If we change time discretisation, we currently change the problem
 class dirichletCondition:
     def __call__(self, x):
-        return 2e-3
+        return 2
         # return 0
-        fst = 3e-4
-        snd = 5e-4
-        trd = 3e-4
+        fst = 3e-1
+        snd = 5e-1
+        trd = 3e-1
         if x < 1.0/5:
             return fst
         elif x < 3.0/5:
-- 
GitLab