Child node cannot be split in a hydrofacture simulation
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 287
- Forks
- 109
- Avg merge
- 4d 41m
- Merged PRs (30d)
- 5
Description
Describe the bug
When two fractures form a T-shape intersection, if the parent objects (such as nodes and edges) need to be split, everything works fine. However, if the children objects that are generated from the first split need to be further split, it is impossible to split. The following screenshot demonstrated the bug:

The only difference between the two problems shown above is the location of the injection for the shorter fracture. In one case, the shorter fracture propagates from the left to the right and meets the parent side of the longer fracture, which works fine. In the second case, the shorted fracture propagates from the right to the left and meets the children side of the longer fracture. In this case, the nodes at the T intersection (which are children node from the previous split) can never be further split.
To Reproduce
Attached are the input files of the two examples (the ".txt" needs to be changed to ".xml")
PennyShapedBase_left.txt
PennyShapedBase_right.txt
PennyShaped_ZeroViscosity.txt
To fix
This logic bug is in the SurfaceGenerator.cpp. I tried to fix it on my own and did not succeed. However, I have some pretty good understanding about the source of the problem. Feel free to contact me directly so that we can fix this issue together.
Tao Jin (tao.jin@uOttawa.ca)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with SurfaceGenerator.cpp and reproduce the behavior using PennyShapedBase_left.xml and PennyShapedBase_right.xml after renaming the supplied .txt files. Compare the two T-intersection cases, focusing on why a child node from the first split cannot be split again. Done means the child-side case can split consistently like the parent-side case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100