diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 07847e0574a63c5785c48fe42448c2fbaa1530e8..32b7bfc47f069bb8ee672a1c9d3953e06287eb03 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -351,6 +351,16 @@ int main(int argc, char *argv[]) { if (parset.get<bool>("useTNNMG")) { MyConvexProblemType myConvexProblem(stiffnessMatrix, *myGlobalNonlinearity, b4, u4_diff); + + // FIXME: This is sort of nasty + // 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; + MyBlockProblemType myBlockProblem(parset, myConvexProblem); multigridStep->setProblem(u4_diff, myBlockProblem);