[Dune-devel] Validity of GridView after grid changes

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


Hi Christian,

I was also think, maybe the meta-grids (and their gridview) or the 
gridview-wrapper might be a problem.

But then I thought:
- A gridview is a "view" and thus needs to be light-weight and thus 
should not store any heavy data that it might need to update, e.g., a 
vector with sub-domain information for each element. We copy around the 
gridviews all the time and my assumption is that copying a gridview 
should be essentially zero-cost.

- If we would assume that the gridviews of the standard grid managers 
are safe, and a meta-grid wraps such gridviews and does not manage any 
extra data, then also meta-grids could be implemented in a safe way.

- In applications, we do not know whether we get a gridview from a 
grid-manager or a meta-gridview. Thus, we should be able to make the 
same assumptions about both.

Best,
Simon

Am 11.04.25 um 09:48 schrieb Christian Engwer:
>> 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.
> I think this is only partially true.
>
> If you have a meta grid and you trigger the modification via the meta
> grid, everything thould be ok, but already it you trigger the
> adaptation via the hostgrid, you might run into problems, as the host
> grid reference is still the same, but the additional metagrid
> information, like the bool vector in subgrid are now of the wrong
> size, or di I miss a trick?
>
> For externally created gridview it is often the same problem, as these
> usually have some kind of metagrid-like behaviour, but this might be
> ok, as you keep them as a reference and thus know that you created
> them explicitly.
>
> Ciao
> Christian
>
>> 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
>> _______________________________________________
>> Dune-devel mailing list
>> Dune-devel at lists.dune-project.org
>> https://lists.dune-project.org/mailman/listinfo/dune-devel
>



More information about the Dune-devel mailing list