Skip to content

Commit d7e56b9

Browse files
committed
Add proxy version of ElemCorner::build_edge
1 parent 69c2779 commit d7e56b9

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

include/geom/elem_corner.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ class ElemCorner : public std::pair<unsigned short, unsigned short>
157157
{ set_edge(vs.first, vs.second); }
158158

159159
/**
160-
* @returns The edge when at an edge
160+
* Builds an edge of element \p elem into the Elem \p edge when at an edge
161+
*/
162+
void build_edge(const Elem & elem, std::unique_ptr<const Elem> & edge) const;
163+
/**
164+
* @returns The built edge of element \p elem when at an edge
161165
*/
162166
std::unique_ptr<const Elem> build_edge(const Elem & elem) const;
163167

src/geom/elem_corner.C

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ bool ElemCorner::at_edge(const Elem & elem, const unsigned short e) const
3333
return at_edge(nodes_on_edge_ptr[0], nodes_on_edge_ptr[1]);
3434
}
3535

36-
std::unique_ptr<const Elem> ElemCorner::build_edge(const Elem & elem) const
36+
void ElemCorner::build_edge(const Elem & elem, std::unique_ptr<const Elem> & edge) const
3737
{
3838
libmesh_assert_greater(elem.dim(), 1);
3939
libmesh_assert(at_edge());
@@ -42,11 +42,21 @@ std::unique_ptr<const Elem> ElemCorner::build_edge(const Elem & elem) const
4242

4343
for (const auto e : elem.edge_index_range())
4444
if (elem.is_node_on_edge(first, e) && elem.is_node_on_edge(second, e))
45-
return elem.build_edge_ptr(e);
45+
{
46+
elem.build_edge_ptr(edge, e);
47+
return;
48+
}
4649

4750
libmesh_error_msg("Element does not contain vertices in ElemCorner");
4851
}
4952

53+
std::unique_ptr<const Elem> ElemCorner::build_edge(const Elem & elem) const
54+
{
55+
std::unique_ptr<const Elem> edge;
56+
build_edge(elem, edge);
57+
return edge;
58+
}
59+
5060
std::string ElemCorner::print() const
5161
{
5262
std::stringstream oss;

0 commit comments

Comments
 (0)