Kristian Oelgaard wrote: > Quoting Anders Logg <l...@simula.no>: > >> On Thu, Oct 01, 2009 at 09:45:10AM +0200, Kristian Oelgaard wrote: >>> Quoting Patrick Riesen <prie...@student.ethz.ch>: >>> >>>> i suppose the problem lies not in VTKFile.cpp. >>>> >>>> you consider a tensor function to have a rank >= 2, >>>> but for my tensor function the rank returned by e.g. >>>> >>>> e.function_space().element().value_rank() >>>> >>>> is 1. So it is rather a vector with 4 components having rank 1. >>>> possibly value_rank() in the FiniteElement class should return 2 even >>>> for a 2d tensor function, then your code in VTKFile is fine, but i >>>> didn't look into the FiniteElement classes. >>> The problem is in ffc/fem/createelement.py where a tensor element is >> treated as >>> a MixedElement which has rank 1. A simple workaround might be to attach >>> len(ufl_element._shape) as the rank of a mixed element and use this value >> when >>> we generate code for the value_rank() function. >>> What do you think Anders? >> Feel free to try. Tensor functions are not very well supported at the >> moment anyway. This is something we'll need to look into at some point >> in the not so distant future. In particular, we're working on a solver >> for the bidomain equations where we will need tensor fields. >> >> It's not something I have time to look at just now though. > > Neither do I, but I just added some code that should give the correct > value_rank() for tensor elements. > Patrick, could you try this out and report any problems related to vtk output?
yes i will try it out tonight when i have my mac where i have the current development versions of fenics, i just have a fixed release of fenics09 on my institute workstation thanks, patrick > > Kristian > >> -- >> Anders >> >> >>> Kristian >>> >>>> patrick >>>> >>>> >>>> -------- Original Message -------- >>>> Subject: Re: [FEniCS-users] [Fwd: Re: tensor function] >>>> Date: Wed, 30 Sep 2009 11:30:45 +0200 >>>> From: Patrick Riesen <prie...@student.ethz.ch> >>>> CC: fenics <fenics-us...@fenics.org> >>>> References: <4ac31db1.2040...@student.ethz.ch> >>>> <4ac320f4.1000...@student.ethz.ch> <4ac32181.8050...@cam.ac.uk> >>>> >>>> seems that the tensor function for a 2d problem doesn't get to the >>>> output structure for a tensor function but to that for a vector function >>>> because it only has rank = 1. the write out for tensor is only invoked >>>> for a (3x3) tensor with rank = 2. >>>> >>>> Garth N. Wells wrote: >>>>> >>>>> Patrick Riesen wrote: >>>>>> Hello, >>>>>> >>>>>> I don't know if this is a problem (dolfin0.9.2): >>>>>> When i was writing the TensorFunction e to a vtk-file after a solve >>>>>> by just using >>>>>> >>>>>> file << e >>>>>> >>>>>> the results i got were absolutely nonsense. I got three components, >>>>>> but none of them made any sense. This is why i was thinking i'm doing >>>>>> something completely wrong in my equations/code, >>>>>> >>>>> VTK output of tensor functions is untested. I would be very surprised >> if >>>>> it did work. Dig around in VTKFile.cpp to see if you can find the >> problem. >>>>> Garth >>>> >>>> >>>> >>>> >>>>>> But if i first separate all components and write them to separate >>>>>> files as >>>>>> Function e11 = e[0]; >>>>>> Function e12 = e[1]; >>>>>> Function e21 = e[2]; >>>>>> Function e22 = e[3]; >>>>>> >>>>>> fileE11 << e11; >>>>>> fileE12 << e12; >>>>>> fileE21 << e21; >>>>>> fileE22 << e22; >>>>>> >>>>>> the solutions look reasonable (uff!..) and e12 and e21 are the same. >>>>>> >>>>>> regards, >>>>>> patrick >>>>>> >>>>>> >>>>>> Patrick Riesen wrote: >>>>>>> sorry, something went wrong, this would be the message: >>>>>>> >>>>>>> -------- Original Message -------- >>>>>>> Subject: Re: [FEniCS-users] tensor function >>>>>>> Date: Wed, 30 Sep 2009 10:52:02 +0200 >>>>>>> From: Patrick Riesen <prie...@student.ethz.ch> >>>>>>> To: Anders Logg <l...@simula.no> >>>>>>> References: <4ac0a8d5.6040...@student.ethz.ch> >>>>>>> <20090928122033.gh2...@olorin> <4ac0ad56.50...@student.ethz.ch> >>>>>>> <20090928140134.ga24...@olorin> <4ac0c346.7020...@student.ethz.ch> >>>>>>> >>>>>>> or maybe not.. >>>>>>> >>>>>>> i can not do >>>>>>> >>>>>>> Function e11 = e[0][0]; >>>>>>> >>>>>>> i get >>>>>>> >>>>>>> error: no match for 'operator[]' in >>>>>>> 'dolfin::Function::operator[](dolfin::uint)(0u)[0]' >>>>>>> >>>>>>> >>>>>>> but i can get components doing >>>>>>> >>>>>>> e11 = e[0]; >>>>>>> e12 = e[1]; >>>>>>> e21 = e[2]; >>>>>>> e22 = e[3]; >>>>>>> >>>>>>> >>>>>>> i suppose for dolfin 0.9.3 it is the case as described below and for >>>>>>> dolfin 0.9.2 the case as above therefore ? >>>>>>> (which is what i am still using currently) >>>>>>> >>>>>>> greetings, >>>>>>> patrick >>>>>>> >>>>>>> Patrick Riesen wrote: >>>>>>>> this helped to sort things out, thanks again. >>>>>>>> patrick >>>>>>>> >>>>>>>> Anders Logg wrote: >>>>>>>>> On Mon, Sep 28, 2009 at 02:34:30PM +0200, Patrick Riesen wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> thans for the quick response, >>>>>>>>>> >>>>>>>>>> therefore when V is the function space of the (e, v, p) element >> and >>>>>>>>>>> e[0] = (a, b) >>>>>>>>>>> e[1] = (c, d) >>>>>>>>>>> e[0][0] = a >>>>>>>>>>> e[0][1] = b >>>>>>>>>>> e[1][0] = c >>>>>>>>>>> e[1][1] = d >>>>>>>>>> therefore doing >>>>>>>>>> >>>>>>>>>> fs = new SubSpace(V,0,0) >>>>>>>>>> >>>>>>>>>> corresponds to the subspace for the two components (a, b) of the >>>>>>>>>> element and not just for a, which then would be SubSpace(V,0,0,0) >> ? >>>>>>>>> Yes. >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> FEniCS-users mailing list >>>>>>>> fenics-us...@fenics.org >>>>>>>> http://fenics.org/mailman/listinfo/fenics-users >>>>>>> _______________________________________________ >>>>>>> FEniCS-users mailing list >>>>>>> fenics-us...@fenics.org >>>>>>> http://fenics.org/mailman/listinfo/fenics-users >>>>>> _______________________________________________ >>>>>> FEniCS-users mailing list >>>>>> fenics-us...@fenics.org >>>>>> http://fenics.org/mailman/listinfo/fenics-users >>>>> >>>> _______________________________________________ >>>> FEniCS-users mailing list >>>> fenics-us...@fenics.org >>>> http://fenics.org/mailman/listinfo/fenics-users >>>> _______________________________________________ >>>> 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 > > > _______________________________________________ > FFC-dev mailing list > ffc-...@fenics.org > http://www.fenics.org/mailman/listinfo/ffc-dev _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev