From 036e41614915d711bc9038240ef993192ec29eb0 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Fri, 23 Dec 2011 15:37:35 +0100 Subject: [PATCH] Provide a nicer initial iterate; on S_F as well --- src/one-body-sample.cc | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 32b7bfc4..8fdb314f 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -356,10 +356,24 @@ int main(int argc, char *argv[]) { // Choose an initial iterate that is admissable // and non-zero in as many places as possible if (run == 1) - for (size_t i = 0; i < ignoreNodes.size(); ++i) - if (!ignoreNodes[i][1]) // Leave out partial DOF-restrictions as - // well - u4_diff[i] = 1; + for (size_t i = 0; i < ignoreNodes.size(); ++i) { + size_t const count = ignoreNodes[i].count(); + + if (count == dim) + continue; + + if (count == 0) { + u4_diff[i] = 1e-4; + continue; + } + + assert(count == 1); + assert(ignoreNodes[i][1]); // Only the y coordinate is allowed to be + // fixed + for (int j = 0; j < dim; ++j) + if (j != 1) + u4_diff[i][j] = 1e-4; + } MyBlockProblemType myBlockProblem(parset, myConvexProblem); multigridStep->setProblem(u4_diff, myBlockProblem); -- GitLab