From: <tim@ce...>  20070424 15:09:11

Dear Roy, On Tue, 24 Apr 2007, Roy Stogner wrote: > On Tue, 24 Apr 2007, Tim Kr=F6ger wrote: > >> Now my question: If I want to assign v=3Du at some point in my code >> (thus not exploiting the possibility of v to be discontinuous), can I >> do this on every cell: >> >> for (unsigned int l=3D0; l<n_dofs; l++) >> { >> system.solution>set(dof_indices_v[l],=20 >> (*system.current_local_solution)(dof_indices_u[l])); >> } > > That might work for the elements like you're using. I wouldn't trust > it until I dug into the code and made sure the local shape functions > were identical and identically ordered, though. It's certain to break > on quads or hexes. I tried it out and found that it doesn't work. v is discontinuous=20 afterwards. >> or do I have to use a quadrature rule? > > The safest thing in general would be a local L2 projection, I don't think I need any projection since the u space is contained in=20 the v space. It would suffice to do the following: For each dof of v,=20 find the corresponding local coordinates, then find the values of the=20 ansatz functions for u at these points, multiply and sum up. Unfortunately, I have no idea how to do this. Do you have any hint=20 where to find an example code that does a similar thing? > but that's > probably overkill here, and factoring even small dense matrices may > not be as cheap as you'd like. Still, if you're thinking of bumping > up p later it may be the thing to do. Currenty, I don't plan to increase p. However, I would like to=20 work the thing on hex cells. Best Regards, Tim 