assignment with restricted function
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)
-
-
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
-
- changed status to wontfix
Restriction support has been largely removed, but will make a comeback later in an improved form.
- Log in to comment
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 aP1
subspace in theMixedFunctionSpace
ofP1
andR
and for a scalarP1
FunctionSpace
. I am afraid that the current graph implementation of a restrictedFunctionSpace
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?