GEOS-DEV / GEOS-DEV/GEOS

Child node cannot be split in a hydrofacture simulation

Open
#1,378 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: bug
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:

Screenshot from 2021-03-24 23-15-20

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.