Anders Logg wrote:
> On Mon, Nov 02, 2009 at 04:31:10PM +0100, Jed Brown wrote:
>> Anders Logg wrote:
>>
>>> The default update procedure would be interpolation.
>> Which interpolation?  Perhaps the user needs it to be conservative or
>> preserve some other structure.  What if they want to use different
>> schemes for different functions on that mesh?
> 
> The standard interpolation defined by the finite element space. So for
> example nodal evaluation for Lagrange elements.

This is the natural choice, but it wasn't really a serious question; I
think it is important that the granularity be finer (so you can apply
different schemes to different functions defined on a mesh).

>> You can't implement refinement in-place anyway.  Providing an interface
>> that looks in-place just means that users have to rewrite larger pieces
>> of their code when they need more control.  I would suggest that
>> refinement produces a new mesh and then provide methods to transfer
>> functions and solver objects to the new mesh.
> 
> Perhaps, but it could require quite a bit of work (from the user) to
> keep track of which objects should be transferred: function spaces,
> functions, forms.

It is important that the interface allows the user to be involved.
Transfering a high-level object like a nonlinear solver would transfer
everything it has a reference to, which means most users would have
something more like

  new_mesh = mesh.refine
  new_V = FunctionSpace(new_mesh, V.spec())
  new_solver = transfer(solver, new_V, interpolation='Conservative')
  new_f = transfer(other_function, new_V, interpolation='Galerkin')

A further issue with in-place updates is that linear algebra objects
need to be destroyed and recreated because they can't be changed
in-place.  This is troublesome when the user holds a reference to any of
these.

Jed

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@fenics.org
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to