dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22169
Re: [Bug 681415] Re: Problem using sub-spaces
On Tuesday March 22 2011 00:45:01 Garth Wells wrote:
> On 22/03/11 05:52, Johan Hake wrote:
> > On Monday March 21 2011 13:50:54 Anders Logg wrote:
> >> On Mon, Mar 21, 2011 at 07:42:21PM -0000, Garth Wells wrote:
> >>> This is also a C++ issue, so should be addressed from that side. A
> >>> solution that I thought of a while a ago is to introduce an abstract
> >>> base class
> >>>
> >>> GenericFunctionSpace
> >>>
> >>> and make FunctionSpace and SubSpace sub-classes of
> >>> GenericFunctionSpace. We would the require a FunctionSpace when
> >>> creating a Function. For boundary conditions, we can use a
> >>> GenericFunctionSpace. At the moment, SubSpace is a sub-class of
> >>> FunctionSpace, and this is a cause of difficulty. We can make it
> >>> possible to create a FunctionSpace from a SubSpace, which would
> >>> basically collapse the dofmap.
> >>
> >> I think that sounds very good. Similar issues as we had before when
> >> the Function class tried to be many things at once (like we can't get
> >> the vector of a subspace but we can for a function space).
> >
> > Sure, but couldn't this be handled without creating a
> > GenericFunctionSpace. Just feels a bit overkill, when it might be
> > handled with the present interface with some added suger.
>
> sugar -> 'hack' ;)
Sure, but not nessesary. If we stick to the Function analogy, we have one
class which handles both cases, i) a full fledged Function or ii) a view into
another Function.
> I think that a GenericFunctionSpace would ultimately be the simplest and
> most robust solution.
Ok, but then we might need more time than to the next release for this bug,
and I might shift assigne to you ;)
Johan
> As Anders wrote, we've gotten into trouble in the
> past by having the function classes be 'more than one thing'.
>
> Garth
>
> > Johan
--
You received this bug notification because you are a member of DOLFIN
Team, which is subscribed to DOLFIN.
https://bugs.launchpad.net/bugs/681415
Title:
Problem using sub-spaces
Status in DOLFIN:
Confirmed
Bug description:
Hi,
I have trouble using MixedFunctionSpace. Basically I want to project a
function to a subspace of a MixedFunctionSpace:
from dolfin import *
mesh=UnitInterval(10)
U = FunctionSpace(mesh, "CG", 1)
V = FunctionSpace(mesh, "CG", 1)
W=U*V
f1=Function(W.sub(0))
f1.vector()[:]=1.0
#f2=project(f1, V) # This works!
f2=project(f1, W.sub(1)) # This doesn't!
The output of that script is attached to the end of this question. Now, the confusing thing is that the projection works fine if one projects to V instead of W.sub(1), although they are mathematically the same spaces.
I hope I haven't missed a similar question already reported.
Best wishes,
Simon
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
[0]PETSC ERROR: or see http://www.mcs.anl.gov/petsc/petsc-as/documentation/troubleshooting.html#Signal[0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors
[0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run
[0]PETSC ERROR: to get more information on the crash.
[0]PETSC ERROR: --------------------- Error Message ------------------------------------
[0]PETSC ERROR: Signal received!
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Petsc Release Version 3.1.0, Patch 3, Fri Jun 4 15:34:52 CDT 2010
[0]PETSC ERROR: See docs/changes/index.html for recent updates.
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
[0]PETSC ERROR: See docs/index.html for manual pages.
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: Unknown Name on a linux-gnu named doodson by sf1409 Thu Nov 25 13:17:44 2010
[0]PETSC ERROR: Libraries linked from /build/buildd/petsc-3.1.dfsg/linux-gnu-c-opt/lib
[0]PETSC ERROR: Configure run at Fri Sep 10 04:57:14 2010
[0]PETSC ERROR: Configure options --with-shared --with-debugging=0 --useThreads 0 --with-clanguage=C++ --with-c-support --with-fortran-interfaces=1 --with-mpi-dir=/usr/lib/openmpi --with-mpi-shared=1 --with-blas-lib=-lblas --with-lapack-lib=-llapack --with-umfpack=1 --with-umfpack-include=/usr/include/suitesparse --with-umfpack-lib="[/usr/lib/libumfpack.so,/usr/lib/libamd.so]" --with-spooles=1 --with-spooles-include=/usr/include/spooles --with-spooles-lib=/usr/lib/libspooles.so --with-hypre=1 --with-hypre-dir=/usr --with-scotch=1 --with-scotch-include=/usr/include/scotch --with-scotch-lib=/usr/lib/libscotch.so --with-hdf5=1 --with-hdf5-dir=/usr
[0]PETSC ERROR: ------------------------------------------------------------------------
[0]PETSC ERROR: User provided function() line 0 in unknown directory unknown file
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 59.
NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
References