Skip to content
Snippets Groups Projects
Commit 68e43871 authored by Porrmann, Maik's avatar Porrmann, Maik
Browse files

bugfix subIndex(facet,...)

parent a0c8a61c
No related branches found
No related tags found
1 merge request!3update master to Releases/2.9
......@@ -891,45 +891,39 @@ namespace Dune{
// interate over intersections
if (useTangentials_)
{
for (const auto &element : elements(gv))
{
if (element.hasBoundaryIntersections())
{
auto elementIndex = elementMapper_.index(element);
const auto &refElement = referenceElement(element);
for (const auto &intersection : intersections(gv, element))
{
// fill vertex Data with linear independent tangentials
if (intersection.boundary())
{
auto facet
= intersection.inside().template subEntity<1>(intersection.indexInInside());
auto startIndex = indexSet.subIndex(facet, 0, dim);
auto endIndex = indexSet.subIndex(facet, 1, dim);
if (tangentialMap_)
{
setVertexData(directionPerVertex[startIndex],
tangentialMap_(facet.geometry().corner(0)), elementIndex);
setVertexData(directionPerVertex[endIndex],
tangentialMap_(facet.geometry().corner(1)), elementIndex);
}
else
{
auto tangential
= intersection.geometry().corner(1) - intersection.geometry().corner(0);
setVertexData(directionPerVertex[startIndex], tangential, elementIndex);
setVertexData(directionPerVertex[endIndex], tangential, elementIndex);
}
auto vertexIterator = refElement.subEntities(intersection.indexInInside(), 1, 2).begin();
auto startIndex = indexSet.subIndex(element, *vertexIterator, 2);
auto endIndex = indexSet.subIndex(element, *++vertexIterator, 2);
auto tangential
= intersection.geometry().corner(1) - intersection.geometry().corner(0);
setVertexData(directionPerVertex[startIndex], tangential, elementIndex);
setVertexData(directionPerVertex[endIndex], tangential, elementIndex);
}
// inner dofs, keep global axes
}
}
}
if (!sequentialSetup)
{
// communicate vertex information Information
VertexDataHandle dataHandle(indexSet, directionPerVertex);
gv.communicate(dataHandle, All_All_Interface, ForwardCommunication);
}
// iterate over vector and set the remaining directions to normals
for (auto &[dir, setTangential, indices] : directionPerVertex)
{
if (setTangential[2]) // if first is tangential
......
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