generate tuples for quadrilateral elements
- Dominant language
- C++
- Stars
- 588
- Forks
- 112
- Avg merge
- 9h 38m
- Merged PRs (30d)
- 2
Description
Hello,
I'm trying to work on adding support for quadrilateral elements
[(Quadrangle, Quadrangle8, Quadrangle9)](http://gmsh.info/doc/texinfo/gmsh.html#Node-ordering)
How can I generate appropriate tuples with generate_nonnegative_integer_tuples_summing_to_at_most tool?
I have added
```
def generate_quadrangle_vertex_tuples(order):
yield (0, 0)
yield (order, 0)
yield (order,order)
yield (0, order)
def generate_quadrangle_edge_tuples(order):
for i in range(1, order):
yield (i, 0)
for i in range(1, order):
yield (order, i)
for i in range(1, order):
yield (i, order)
for i in range(1, order):
yield (0, i)
def generate_quadrangle_volume_tuples(order):
for i in range(1, order):
for j in range(1, order):
yield (j, i)
```
and
```
class GmshIncompleteQuadrilateralElement(GmshElementBase):
dimensions = 2
def __init__(self, order):
self.order = order
@memoize_method
def gmsh_node_tuples(self):
result = []
for tup in generate_quadrangle_vertex_tuples(self.order):
result.append(tup)
for tup in generate_quadrangle_edge_tuples(self.order):
result.append(tup)
return result
class GmshQuadrilateralElement(GmshElementBase):
dimensions = 2
@memoize_method
def gmsh_node_tuples(self):
result = []
for tup in generate_quadrangle_vertex_tuples(self.order):
result.append(tup)
for tup in generate_quadrangle_edge_tuples(self.order):
result.append(tup)
for tup in generate_quadrangle_volume_tuples(self.order):
result.append(tup)
return result
```
which generate:
```
el = GmshQuadrilateralElement(1)
el.gmsh_node_tuples()
```
> [(0, 0), (1, 0), (1, 1), (0, 1)]
```
el = GmshQuadrilateralElement(2)
el.gmsh_node_tuples()
```
> [(0, 0), (2, 0), (2, 2), (0, 2), (1, 0), (2, 1), (1, 2), (0, 1), (1, 1)]
```
el = GmshIncompleteQuadrilateralElement(2)
el.gmsh_node_tuples()
```
> [(0, 0), (2, 0), (2, 2), (0, 2), (1, 0), (2, 1), (1, 2), (0, 1)]
but the node numbering is not compatible (sum of integers > self.order | self.dimension) with tuples returned by lexicographic_node_tuples.
Thanks
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.