assignment with restricted function

Issue #182 wontfix
Martin Eigel created an issue

It would be very useful if one could assign a restricted function to a function of the full function space, thus getting the function extended by zero outside of the restriction domain. This seems like a natural extension to the current functionality of function assignment. A discussion of this issue with some sample code can be found in this thread. Moreover, another issue related to restricted function spaces is filed here.

Comments (3)

  1. Johan Hake

    Restricted FunctionSpace is not well implemented at the moment. There are a number of corner cases that is not covered and a some issues already registered. A focused development of FEniCS towards multi-physic problems is planned this winter/spring, but as usual this comes on top of other projects developers have.

    Another issue with fixing this issue is that the dofs are ordered according to a graph algorithm. It is vital for the FunctionAssigner that each subspace order its dofs the same way. At the moment this is not the case for for example a P1 subspace in the MixedFunctionSpace of P1 and R and for a scalar P1 FunctionSpace. I am afraid that the current graph implementation of a restricted FunctionSpace does not preserve dof ordering, and fixing this issue then becomes much harder.

    If interpolation could fix your immediate needs fixing the interpolation issue might therefore be a more tractable for you?

  2. Martin Eigel reporter

    I see, thanks for your comments. Yes, a working interpolation would remedy an immediate need with a current project and would be highly appreciated.

    I would also like to suggest that the restricted function space makes available information about the internal dof mapping so that one can work something out "by hand" if push comes to shove. I guess that DofMapBuilder has the relevant bits, like in here

    // Maps used to renumber dofs for restricted meshes
    map restricted_dofs;         // map from old to new dof
    
  3. Log in to comment