Skip to content

Conversation

@GiudGiud
Copy link
Contributor

@GiudGiud GiudGiud commented Dec 22, 2025

based on top of the hexagon tiling PR, ignore that content for now! It's in another PR

see companion PR in MOOSE creating a bunch of polys with exodus viz of the tets:
idaholab/moose#32141

const Point x_i = side.point(0);
const Point n_i =
(side.point(1) - side.point(0)).cross
-(side.point(1) - side.point(0)).cross
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@roystgnr can I please get a fact check on this line (rest is WIP)?
I'm assuming that if the nodes are ordered in the counter-clockwise direction, the normal should point up. Is that correct?

Then placing my index along P0P1 and the major following Pn-1P0 (what this formula says?) I would get down, so instead I do
P1P0 x Pn-1P0 or similarly Pn-1P0 x P0P1 and I get up (the desired result)

am I getting this wrong?

Copy link
Contributor Author

@GiudGiud GiudGiud Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok the (center - center_side) (pointing inside) is flipping the sign. So changing it is wrong here, I ll change it back

…ns on two sides

that arise from extrusion
- dont create a 0 vol elements if we have 3 surrounding nodes and everybody is coplanar
- try to avoid this situation by improving as many potential 0-volume neighbor tets as possible
  when selecting which tet to construct
dont pick the second tet node that makes the future neighbors of size 0
- prioritize fixing more bad neighbors instead of always asking for quality
  improvements
- don't consider the future neighbors when building the final tet
- would trigger some asserts as down to 2 neighnor nodes
@GiudGiud GiudGiud changed the title Poly fixups WIP Changes to C0 polyhedron tetrahedralization loops Dec 28, 2025
if (local_tet_quality[j2] == 0 || local_tet_quality[j2] == far_node)
{
nodes_by_geometry.erase(geometry_it);
has_skipped_adding_tets_and_retriangulating = true;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the saddest part of this PR. If we could still work with a valid surface mesh it would be a lot safer

unfortunately I seem to need this for every planar 4 node face, we always end up with an empty final tet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant