Skip to content
Snippets Groups Projects
Commit 3df2a133 authored by Elias Pipping's avatar Elias Pipping
Browse files

[Cleanup] Improve dirichlet handling in time stepping

parent 3360ff17
No related branches found
No related tags found
No related merge requests found
......@@ -71,26 +71,13 @@ void BackwardEuler<Vector, Matrix, Function, dim>::setup(
iterate = 0.0;
for (size_t i = 0; i < dirichletNodes.size(); ++i)
switch (dirichletNodes[i].count()) {
case 0:
continue;
case dim:
iterate[i] = 0;
dirichletFunction.evaluate(relativeTime, iterate[i][0]);
break;
case 1:
if (dirichletNodes[i][0]) {
dirichletFunction.evaluate(relativeTime, iterate[i][0]);
break;
}
if (dirichletNodes[i][1]) {
iterate[i][1] = 0;
break;
}
assert(false);
default:
assert(false);
}
for (size_t j = 0; j < dim; ++j)
if (dirichletNodes[i][j]) {
if (j == 0)
dirichletFunction.evaluate(relativeTime, iterate[i][j]);
else
iterate[i][j] = 0;
}
}
template <class Vector, class Matrix, class Function, size_t dim>
......
......@@ -78,26 +78,13 @@ void Newmark<Vector, Matrix, Function, dim>::setup(Vector const &ell,
iterate = 0.0;
for (size_t i = 0; i < dirichletNodes.size(); ++i)
switch (dirichletNodes[i].count()) {
case 0:
continue;
case dim:
iterate[i] = 0;
dirichletFunction.evaluate(relativeTime, iterate[i][0]);
break;
case 1:
if (dirichletNodes[i][0]) {
dirichletFunction.evaluate(relativeTime, iterate[i][0]);
break;
}
if (dirichletNodes[i][1]) {
iterate[i][1] = 0;
break;
}
assert(false);
default:
assert(false);
}
for (size_t j = 0; j < dim; ++j)
if (dirichletNodes[i][j]) {
if (j == 0)
dirichletFunction.evaluate(relativeTime, iterate[i][j]);
else
iterate[i][j] = 0;
}
}
template <class Vector, class Matrix, class Function, size_t dim>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment