Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gsoc2024 hexahedral mesh generation tbenard #8445

Draft
wants to merge 46 commits into
base: master
Choose a base branch
from

Conversation

theo97490
Copy link

@theo97490 theo97490 commented Aug 29, 2024

Summary of Changes

Implementation of the method used in the paper "A template-based approach for parallel hexahedral two-refinement", Steven J. Owen, Ryan M. Shih, Corey D. Ernst (2015, 2017);

Adds two functions to compute the hexahedral two-refinement of a mesh under the Linear Cell Complex package, respectively a single-threaded and multi-threaded version of the algorithm.

Additionnal information on the project public gist here

We asked ourselves with gdamiand if this this going to be a package or a part of the LCC package. I think the algorithm has no real purpose to have its own package. Currently it is written as an example under the LCC package, we might move it in the end into the include folder of the package.

TODO

  • Fix a bug where stored dart handles to planes (x,y,z) may be invalidated due to refinement.
  • Finish the Multi Threaded version :
    • Finish the MT for levels of refinement above 1
    • Sew all LCCs into one after all threads finishes
    • A test to check if any decomposition of the domain doesn't change the result of the MT function, with the test being truthy.
  • Vertices displacement procedure ( see 2017 version of the paper )
  • Cleanup the code
  • Move the code from "examples" to "include" inside the LCC package

Working example for 1/2 template substitution
* Detection of "sandwiched" volumes (that share only a edge with the plane)
* Related: Traversal takes into account problematic 1/2 templates faces
* Repair impossible markings (wip)
* 3 templates outside of iteration plane are not refined
* Issue: I think 3 templates should be allowed outside of the plane, since we check for 3 templates validity only inside the plane
* Solution: Either a propagation issue ( keep older 1/2 templates propageable )  or else its a non issue and properly detect the 3 templates outside the plane.
* WIP Expansion of initial identified set, for additional level of refinement
* WIP Creation of new iteration plane for the next level.
=> Uses Union_find, to create connected components, for the algorithm to avoid iterating outside of the current level context
( Local rebase of 5 commits )
@theo97490 theo97490 marked this pull request as draft August 29, 2024 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants