Skip to content

Conversation

@Leguark
Copy link
Member

@Leguark Leguark commented Feb 13, 2026

Improve triangulation for anisotropic grid shapes and refine mesh overlap handling

Triangulation Improvements

  • Added support for anisotropic grid shapes by replacing single base number with separate base_x, base_y, base_z dimensions
  • Updated _get_pack_factors to compute packing factors based on individual grid dimensions
  • Improved handling of empty left_right_array by initializing grid dimensions to zero
  • Adjusted triangulation logic to use individual grid dimension values for improved flexibility

Mesh Overlap Handling Enhancements

  • Implemented a two-step process for mesh overlap handling:
    1. Vertex sharing to connect meshes
    2. Conservative triangle removal to clean up overlaps
  • Added new 'all' mode to _remove_triangles_in_voxels for selective triangle removal
  • Enhanced documentation of fault relation application process

Code Cleanup and Testing

  • Removed deprecated _last_pass function and associated logic
  • Added pytest configuration to exclude common directories from recursion
  • Updated test with consistent random seed for reproducibility
  • Adjusted grid shape in test configuration to [5, 2, 4] for better testing

These changes improve the handling of complex geological structures with anisotropic grid shapes and provide more precise control over mesh generation at fault intersections.

…ors for anisotropic grid shapes

- Replaced single base number with separate `base_x`, `base_y`, `base_z` for flexibility
- Adjusted `_get_pack_factors` to compute packing factors based on individual grid dimensions
- Improved handling of empty `left_right_array` by initializing grid dimensions to zero
…s (`base_x`, `base_y`, `base_z`)

- Updated triangulation logic to use individual grid dimension values for improved flexibility.
- Adjusted `check_voxels_exist_next_to_edge` to handle separate dimension values in edge validation.
- Removed redundant calculation of `base_number`.
…odes`

Cleaned up deprecated logic and comments to improve code readability and maintainability.
- Eliminated `_last_pass` function and associated logic from `dual_contouring_v2` to simplify processing.
- Updated test with consistent random seed for reproducibility.
- Adjusted grid shape in test configuration for clarity.
Updated `regular_grid_shape` in the test setup to `[5, 2, 4]` for better alignment with current test requirements.
Introduced a two-step process for mesh overlap handling: vertex sharing followed by conservative triangle removal. Enhanced `_remove_triangles_in_voxels` function to support a new 'all' mode for selective triangle removal. Updated grid logic and test configurations to align with refined octree methods and model data structures.
@Leguark Leguark changed the title [CONFIG] Add pytest configuration to exclude common directories from recursion [ENH] Improve fault handling in dual contouring with arbitrary grid shapes and conservative triangle removal Feb 13, 2026
Copy link
Member Author

Leguark commented Feb 13, 2026

@Leguark Leguark marked this pull request as ready for review February 13, 2026 08:17
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