MCPcopy Create free account
hub / github.com/FEniCS/dolfinx / vtk_triangle

Function vtk_triangle

cpp/dolfinx/io/cells.cpp:68–94  ·  view source on GitHub ↗

-----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

66}
67//-----------------------------------------------------------------------------
68std::vector<std::uint16_t> vtk_triangle(int num_nodes)
69{
70 std::vector<std::uint16_t> map;
71 map.reserve(num_nodes);
72
73 // Vertices
74 map.insert(map.begin(), {0, 1, 2});
75
76 int degree = io::cells::cell_degree(mesh::CellType::triangle, num_nodes);
77 for (int k = 1; k < degree; ++k)
78 map.push_back(3 + 2 * (degree - 1) + k - 1);
79 for (int k = 1; k < degree; ++k)
80 map.push_back(3 + k - 1);
81 for (int k = 1; k < degree; ++k)
82 map.push_back(2 * degree - (k - 1));
83
84 if (degree < 3)
85 return map;
86
87 // Interior VTK is ordered as a lower-order triangle, while DOLFINx
88 // orders them lexicographically
89 std::vector<std::uint16_t> rem(num_nodes - map.size());
90 std::iota(rem.begin(), rem.end(), 3 * degree);
91 std::ranges::copy(vtk_triangle_remainders(rem), std::back_inserter(map));
92
93 return map;
94}
95//-----------------------------------------------------------------------------
96std::vector<std::uint16_t>
97vtk_tetrahedron_remainders(std::vector<std::uint16_t> remainders)

Callers 1

perm_vtkMethod · 0.85

Calls 3

vtk_triangle_remaindersFunction · 0.85
insertMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected