[Dune-devel] Validity of GridView after grid changes

Simon Praetorius simon.praetorius at tu-dresden.de
Fri Apr 11 09:23:53 CEST 2025


Hi,

Thanks for pointing to the "magic pointer", or change-counter to 
identify whether it is necessary to to update some data structures.

But, actually I wanted to know something else (I am not sure if this is 
related):

Do we need to recreate the gridview after the underlying grid is 
modified? I always thought: yes, but maybe I got this somehow wrong.

Examples:
- The gridview of Dune::UGGrid just stores a pointer to the grid (and 
potentially a level int) and redirects all calls to the grid -> the 
gridview object is valid after grid adaption
- YaspGrid implements its gridview via the DefaultGridView 
implementations that redirect everything to the grid -> the gridview 
object is valid after grid adaption
- OneDGrid is fine
- ALUGrid is fine
- Some meta-grids are a little bit more complicated to check since, 
e.g., IdGridViewBasic has an IndexSet stored in the class that contains 
a reference to the host-indexset and it needs to be checked whether the 
indexset references are valid after grid adaption. But, it seems so.

So, my post refers actually to the question whether we should do 
anything with the gridview or not (after grid adaption) and it seems to 
me, that a gridview is perfectly valid after the underlying grid has 
changed.

Did I miss something? Is this a guarantee that we can give? Are there 
counterexamples?

Best,
Simon

Am 10.04.25 um 21:04 schrieb Christian Engwer:
> PS Ich denke ein genereller Bedarf besteht, wir sollten also mal über 
> eine Lösung diskutieren...
>
>
> Am 10. April 2025 20:57:21 MESZ schrieb Christian Engwer 
> <christian.engwer at uni-muenster.de>:
>
>     Deswegen gibt es den magischen Pointer den Robert aufs Gitter
>     packen möchte, damit er dort eine Liste pflegen kann, welche
>     Objekte alle aktualisiert werden müssen, wenn sich das Gitter ändert.
>
>     Ciao Christian
>
>
>     Am 10. April 2025 18:19:52 MESZ schrieb Simon Praetorius
>     <simon.praetorius at tu-dresden.de>:
>
>         Hi everyone, if I have a gridview, e.g. a leaf-gridview, of
>         some grid and I modify the grid, e.g., do some grid adaption,
>         what is the state of the gridview after this modification?
>         What can we do with a gridview after the modification? As far
>         as I was know (maybe this is documented somewhere),
>         essentially the gridview is invalid, except for the reference
>         to the grid. Is this statement correct? Background to this
>         question: Often I have stored just a gridview, in my
>         application most of the time just the leaf gridview. If the
>         underlying grid changes, how can I generate an updated
>         gridview for these classes? The gridview does not know what
>         kind of gridview it is and how it was constructed. Thus, it
>         cannot request an update of itself. Examples of such classes
>         that need to update their gridview are the MCMGMapper in
>         dune-grid, the VtkWriter from dune-vtk, the global basis from
>         dune-functions, and probably a lot more. Several grids have
>         gridviews that stay valid after grid modifications, e.g. those
>         implemented with a GridDefaultImplementation using
>         DefaultGridViewTraits. Is this, by chance, true for all grid
>         managers? In which grid managers an operation on an
>         invalidated gridview would fail (and why)? Best, Simon
>
>
> _______________________________________________
> Dune-devel mailing list
> Dune-devel at lists.dune-project.org
> https://lists.dune-project.org/mailman/listinfo/dune-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20250411/69064461/attachment-0001.htm>


More information about the Dune-devel mailing list