Garth N. Wells wrote: > > > Johan Hake wrote: >> On Saturday 17 October 2009 21:08:14 Garth N. Wells wrote: >>> Garth N. Wells wrote: >>>> DOLFIN wrote: >>>>> One or more new changesets pushed to the primary dolfin repository. >>>>> A short summary of the last three changesets is included below. >>>>> >>>>> changeset: 7378:e5c921e0293a >>>>> tag: tip >>>>> user: "Johan Hake <h...@simula.no>" >>>>> date: Sat Oct 17 15:45:36 2009 +0200 >>>>> files: site-packages/dolfin/function.py >>>>> site-packages/dolfin/functionspace.py description: >>>>> Make Mixed FunctionSpace access more consistant. >>>>> - All methods are now defined in FunctionSpaceBase. >>>>> - We now do not save any spaces in MixedFunctionSpace >>>> This change broke my code. See below. >>> Seems that the problem arises with spaces which are restricted, >>> >>> V = FunctionSpace(mesh, "CG", 1, "facet") >> >> This is an error in the generated FFC code. >> ufc::finite_element::signature() >> should return a string that can be executed in a ufl namespace and >> then generate the corresponding ufl.FiniteElement. >> >> For a restricted element the signature returns: >> >> "FiniteElement('Lagrange', 'triangle', 1)|_{<interval of degree 1>}" >> >> where it should return: >> >> "ElementRestriction(FiniteElement('Lagrange', Cell('triangle', 1, >> Space(2)), 1), Cell('interval', 1, Space(1)))" >> >
I've had a look, and while I don't yet follow where UFL defines its signatures, things are dangerous because FFC formats its own signature strings, see line 227 of ffc/ffc/fem/finiteelement.py We stopped using signature strings in DOLFIN because it gave us all sorts of problems. Is it desirable to have PyDOLFIN depend on the generated strings? Can it be avoided? Garth > If I look at the generated code in Poisson.h (the DOLFIN demo), the > signature is > > "FiniteElement('Lagrange', 'triangle', 1)" > > so the restricted one looks consistent to me. How does PyDOFLIN use the > signature? > > Garth > > >> Johan >> >>> Garth >>> >>>> Garth >>>> >>>> File "solver.py", line 96, in solve >>>> (uhat, uu) = Uh.split() >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/function.py", line 150, in split >>>> return tuple(self._sub(i,deepcopy) for i in >>>> xrange(self._V.num_sub_spaces())) >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/function.py", line 150, in <genexpr> >>>> return tuple(self._sub(i,deepcopy) for i in >>>> xrange(self._V.num_sub_spaces())) >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/function.py", line 135, in _sub >>>> return Function(self, i) >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/function.py", line 80, in __init__ >>>> self._V = V.sub(i) >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/functionspace.py", line 88, in sub >>>> return FunctionSpaceFromCpp(cpp.SubSpace(self,i)) >>>> File >>>> "/home/garth/code/fenics/dolfin/dolfin-all/local/lib/python2.6/site-packa >>>> >>>> ges/dolfin/functionspace.py", line 101, in __init__ >>>> self._ufl_element = eval(cppV.element().signature(), ufl.__dict__) >>>> File "<string>", line 1 >>>> FiniteElement('Lagrange', 'triangle', 1)|_{<interval of degree 1>} >>>> >>>>> changeset: 7377:40cca61143c6 >>>>> user: "Garth N. Wells <gn...@cam.ac.uk>" >>>>> date: Sat Oct 17 13:24:47 2009 +0100 >>>>> files: dolfin/mesh/SubDomain.h >>>>> description: >>>>> Small formatting fix. >>>>> >>>>> >>>>> changeset: 7376:8ee974ed5f7e >>>>> user: Anders Logg <l...@simula.no> >>>>> date: Sat Oct 17 00:05:34 2009 +0200 >>>>> files: dolfin/function/Function.cpp >>>>> description: >>>>> Remove unnecessary lines in Function::eval noted by Marc S. >>>>> >>>>> ---------------------------------------------------------------------- >>>>> For more details, visit http://www.fenics.org/hg/dolfin >>>>> _______________________________________________ >>>>> DOLFIN-dev mailing list >>>>> DOLFIN-dev@fenics.org >>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>>> _______________________________________________ >>>> DOLFIN-dev mailing list >>>> DOLFIN-dev@fenics.org >>>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>> _______________________________________________ >>> DOLFIN-dev mailing list >>> DOLFIN-dev@fenics.org >>> http://www.fenics.org/mailman/listinfo/dolfin-dev >>> > > > _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev