Skip to content

Fix element ordering only for invalid element volumes #35

Open
@alexbenedicto

Description

@alexbenedicto

Currently, the feature fix_elements_orderings applies the new ordering of nodes for all elements of the same type given by the user.
So, if you identified that your Tetrahedrons have 2 inverted nodes, you can change the ordering of these 2 nodes for all Tetrahedrons in the mesh. This supposes then that every Tetrahedrons was badly ordered.

Now let's imagine that only a certain amount of Tetrahedrons is badly ordered. Using fix_elements_orderings would not solve the issue because invalid Tetrahedrons will become valid and vice versa.

Solution:

Have the possibility to use a grid parameter that would identify which cells have invalid nodes ordering.
This parameter should be the element volume.

Therefore, the new feature would implement a new parser argument --volume_to_reorder that would either take "all", "positive" or "negative" as parameter.

  1. If --Tetrahedron 2,0,3,1 --volume_to_reorder all, all Tetrahedrons of the mesh will use the new ordering.
  2. If --Tetrahedron 2,0,3,1 --volume_to_reorder negative is used, all Tetrahedrons that have a negative volume will use the new ordering.
  3. If --Tetrahedron 2,0,3,1 --volume_to_reorder positive is used, all Tetrahedrons that have a positive volume will use the new ordering.

EDIT:

This feature will no longer require to have the user enter the correct node ordering.
Taking that into consideration, the correct way would be to only specify the cell types to check and reorder if invalid volume:

  1. If --cell_names Tetrahedron --volume_to_reorder all, all Tetrahedrons of the mesh will use the new ordering.
  2. If --cell_names Tetrahedron --volume_to_reorder negative is used, all Tetrahedrons that have a negative volume will use the new ordering.
  3. If --cell_names Tetrahedron --volume_to_reorder positive is used, all Tetrahedrons that have a positive volume will use the new ordering.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions