[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