Dear Roy and all,
On Wed, 16 Apr 2008, Roy Stogner wrote:
> On Wed, 16 Apr 2008, Tim Kroeger wrote:
>> Next question from me: Is there some easy way in libMesh to compare
>> computation results on different grids? I.e., I have two
>> EquationSystems instances that consist of equal systems but live on
>> different grids, where both grids are refinements of the same initial
>> grid. For each variable in each system, I want the difference of the
>> computed solutions on the two grids, in various norms (say L1, L2,
>> I conjecture that there is no easy way to do this in libMesh, but I
>> thought it might be sensible to ask.
> If by "different" you mean that one mesh is everywhere as fine as or
> finer than the other, then you can construct a MeshFunction from the
> coarser solution and use it with an ExactSolution object on the fine
> system to get the right answer.
Sounds easy at first sight, but as I looked closer to it, it seems
quite difficult on more than one processor, because I can't assume
that the vectors on both meshes are distributed in the same way,
right? It should be necessary to either
(a) to redistribute one solution (preferably the coarser one) such
that it is distributed equivalently as the other one,
(b) perform a lot of inter-process communication,
(c) write everything to disk and perform the comparison in serial.
Since I am not familiar with the interna of the vector distribution
mechanism of libMesh, I feel not able to implement (a). Version (b)
seems to be a lot of work and also not very effective, so I will use
(c) as a workaround for now, although I don't really like it, and it
might run out of memory.
Please let me know if you have any thoughts about this.
Dr. Tim Kroeger Phone +49-421-218-7710
tim.kroeger@..., tim.kroeger@... Fax +49-421-218-4236
MeVis Research GmbH, Universitaetsallee 29, 28359 Bremen, Germany
Amtsgericht Bremen HRB 16222
Geschaeftsfuehrer: Prof. Dr. H.-O. Peitgen