dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #16425
Re: Mesh refinement and Functions
On Mon, Nov 02, 2009 at 10:06:14AM -0500, Shawn Walker wrote:
>
> So, when you do
>
> mesh.refine()
>
> that automatically replaces the old mesh with the new one? This
> seems ok. As long as the user still has the option of storing the
> old unrefined mesh and associated functions.
>
> How will functions be updated? Just interpolation? Is that easy to
> do if you use some non-standard elements, i.e. H(div), etc... I
> guess the question is this: Is there a unique way to update the
> functions? If so, then this should be safe. If not, then there
> might be headaches with this...
The default update procedure would be interpolation.
--
Anders
> - Shawn
>
> On Mon, 2 Nov 2009, Anders Logg wrote:
>
> >I've thought some more on the problem of mesh refinement and updating
> >of Functions.
> >
> >The main problem seems to be the following:
> >
> > mesh.refine()
> >
> >If we want to allow this, then we need to provide some kind of
> >automated updating of functions and function spaces to the new mesh,
> >since this call will otherwise destroy all function spaces and
> >functions that refer to that mesh:
> >
> > V = FunctionSpace(mesh, "CG", 1)
> > v = Function(V)
> > mesh.refine() # V and v no longer make any sense
> >
> >This gives us two options. Either we disallow refinement of a mesh
> >without making a copy. Or we provide automated updating. I think we
> >should do the latter.
> >
> >What is needed compared to what we have now is to let a call to
> >Mesh::refine trigger a call to FunctionSpace::update for all function
> >spaces defined on the mesh, which in turn will trigger calls to
> >Function::update for all functions defined on the function spaces.
> >
> >We can make the update functions private.
> >
> >Comments or objections? I think I can make this work.
> >
Attachment:
signature.asc
Description: Digital signature
Follow ups
References