OPM / opm-grid

DUNE module supporting grids in a corner-point format
http://www.opm-project.org
GNU General Public License v3.0
19 stars 78 forks source link

Overlap layer size 1 affects uniqueness of point global ids for CpGrid with LGRs #804

Open aritorto opened 5 days ago

aritorto commented 5 days ago

When a CpGrid gets distributed, the overlap layer size is set to 1. In particular, cells that share only corners or edges (and do not share faces) with interior cells are not seen by the process, i.e., are not part of the overlap layer.

A few PRs (OPM/opm-grid#802 and OPM/opm-grid#803) intend to support adding LGRs on a distributed grid. This includes the definition/assignment of new ids for refined cells and points. We expect ids to be unique across all processes and to have only one id per Entity (cell or point). Unfortunately, uniqueness for point ids is not achievable and the reason behing that is the size of the overlap layer (equal to 1, considering only cells that share a face with an interior cell, but not only points/edges).

In OPM/opm-grid#802, in addLgrsOnDistributedGrid_test.cpp there are many examples to illustrate this situation.

Do we want to modify the size of the overlap layer? In general? Only if LGRs are involved? Or should we move forward without unique point ids "in some cases"?

Calling loadBalance with addCornerCells = true solves the issue in SOME cases. See OPM/opm-grid#806

atgeirr commented 3 days ago

Do we want to modify the size of the overlap layer? In general? Only if LGRs are involved? >Or should we move forward without unique point ids "in some cases"?

Increasing the (default) size of the overlap layer would be a quite big change, and bring performance penalties. But the code should be able to cope with a larger overlap without any other consequences, so it may be good to investigate this.

@hnil I think you looked at this recently, what is your opinion?

aritorto commented 3 days ago

Thanks @atgeirr for your comment! I agree on not changing the default. Maybe extending the functionality to also include cells that share only corners (not edges/faces) too, for cases when this is extremely important. Keeping the default and the performance on place when it's not.