snappyHexMesh : Add an option to disable self-proximity in region proximity refinement
Functionality to add/problem to solve
The proximity refinement added to the refinementRegions in snappyHexMesh is super powerful. However, unless I'm mistaken, one feature I believe it lacks is the ability to limit refinement to be between two separate regions/surfaces only (disable self-proximity). We can already override the gapLevel and gapMode settings on a per surface basis, but this also overrides refinement in gaps between two separate regions/surfaces.
I know that this can be made moot by specifying a very specifically shaped and sized refinementRegion that only covers the gap I want to capture, but I would much rather just throw a bounding box around two objects and have it only refine where they get close to each other and not do self-proximity, which can open up unintended gaps in the surfaces.
Target audience
Anyone needing proximity refinement between two surfaces on a complex geometry where it is difficult to specify or create a closed surface around only a region you wish to resolve a gap.
Proposal
Being ignorant of the complexities of snappyHexMesh, it seems like the hard work of finding the gaps is already being done, we just need to recognize whether the gap is between triangles on separate surfaces/regions or the same surface/region and refine or not refine based on a user specified bool input. I envision adding a selfProximity option to the refinementRegion section that can be overridden on a per-surface basis like the other proximity settings.
What does success look like, and how can we measure that?
I can provide a simple test case if required. A test case where two objects are close to each other and where one of the objects has a small "self-gap" is a good test case. Success would be throwing a bounding box around the two objects, defining it as a proximity region, and only having it refine between the objects and not the small gap that exists within one of the objects.
Funding
No sponsorship is available right now, I'm just hoping that this is easy enough to add and useful enough to a wide range of groups that it might make the cut in a future release.
## Reattaching the author to the issue ticket: @graups ##