Peano
Loading...
Searching...
No Matches
TaskNumber.cpph
Go to the documentation of this file.
1#include "peano4/utils/Loop.h"
2
3
4template <typename Vertex>
5std::set<::swift2::TaskNumber> swift2::getVertexNumbersOfParentVertices(
9 int dimension
10) {
11 if (dimension == -1) {
12 std::set<::swift2::TaskNumber> result;
13 result.insert(::swift2::TaskNumber{
14 coarseGridVertices(peano4::utils::dLinearised(position, 2)).getNumber(), taskAssociation});
15 return result;
16 } else if (position(dimension) == 0) {
17 return getVertexNumbersOfParentVertices(position, coarseGridVertices, taskAssociation, dimension - 1);
18 } else if (position(dimension) == 3) {
19 position(dimension) = 1;
20 return getVertexNumbersOfParentVertices(position, coarseGridVertices, taskAssociation, dimension - 1);
21 } else {
22 std::set<::swift2::TaskNumber> result;
23 position(dimension) = 0;
24 std::set<::swift2::TaskNumber> left = getVertexNumbersOfParentVertices(
25 position, coarseGridVertices, taskAssociation, dimension - 1
26 );
27 position(dimension) = 1;
28 std::set<::swift2::TaskNumber> right = getVertexNumbersOfParentVertices(
29 position, coarseGridVertices, taskAssociation, dimension - 1
30 );
31 result.insert(left.begin(), left.end());
32 result.insert(right.begin(), right.end());
33 return result;
34 }
35}
36
37
38template <typename Vertex>
39std::set<::swift2::TaskNumber> swift2::getVertexNumbersOfParentVertices(
43) {
45 marker.getRelativePositionWithinFatherCell(), coarseGridVertices, taskAssociation, Dimensions - 1
46 );
47}
CPUGPUMethod int dLinearised(const tarch::la::Vector< Dimensions, int > &counter, int max)
Map d-dimensional vector onto integer index.
Definition Loop.cpp:106
std::set<::swift2::TaskNumber > getVertexNumbersOfParentVertices(const peano4::datamanagement::VertexMarker &marker, peano4::datamanagement::VertexEnumerator< Vertex > coarseGridVertices, ::swift2::TaskNumber::TaskAssociation taskAssociation)
Get numbers of parent vertices.
Vertex enumerator within array.
Vertex marker to provide information about selected vertex.
Task Number.
Definition TaskNumber.h:29
Simple vector class.
Definition Vector.h:134