From: John Peterson <peterson@cf...>  20070411 15:24:39

Luca Antiga writes: > Yes, we noticed it too late: we didn't change the scalar bar in the > lumped tets... > Anyway, we confirm that there's no overshoot with the lumped tets > case (you can see the top vectors are shown in orange). > The interpretation you give in the figure is quite effective. > > In the cube you sent last week, what puzzled me is that in the AMR > refined cube it almost looks like you get exact bc values > at the nodes of the original mesh, while in the refined nodes you get > the oscillations (look at box 2 in the figure). Is this just due > to symmetry or to the presence of the unrefined bulk mesh in the > interior? Or it's an effect of the L2 constraints on the hanging nodes? > I'd like to hear an opinion from you guys. I think I see the node you are referring to. I put a circle around it in the picture here: http://www.cfdlab.ae.utexas.edu/~peterson/hanging.png This hanging node is constrained to take on 1/2 the xvelocity value of the lid (1.0) and the side wall (0.0). So it obtains a value of roughly 1/2. I think this is correct from the standpoint that this is what the library implements, but whether or not it is correct in the sense of "this is what you want to see" is debatable. In your refined hex mesh there is no such coarse element sitting on the boundary, so you don't see this effect there. > Anyway, once one understands the subtleties of AMR and penalty > conditions, it looks like 3D AMR is working well in libmesh, > both for hexas and tets. > > We're now running a case on a 3D tet mesh of a real vessel. We'll > keep you posted on the advancements. > Once thing we anticipate is that levelone refinement is not always > granted: even though we refine with the maintain level one > flag set to true, we get a twolevel jump on a few neighboring faces. This apparent 2level refinement may be due to the fact that we plot 10node Tets as 8 linear tetrahedra in GMV. So for example in the figures on your webpage it looks like level1 is enforced. John > > On Apr 11, 2007, at 4:03 PM, John Peterson wrote: > > > Hi Luca, > > > > I notice that only for the Lumped Hexes is the maximum velocity > > magnitude=1. > > Is there still a 19% overshoot for the Lumped Tets? It looks like > > perhaps > > the variable ranges just need to be reset in the last picture. Is > > your > > conclusion that adaptivity is working OK in LibMesh? > > > > It seems that applying the lumped penalty BC formulation for > > discontinuous boundary > > conditions is a reasonable rule of thumb to follow. It's kind of > > like choosing > > which type of approximation to a "shock" one prefers. (See > > attached figure.) > > > > <shock_picture.pdf> > > > > > > John > > > > > > > > Luca Antiga writes: > >> Hi guys, > >> as promised we took a few images of the 3D liddriven cavity > >> showing the difference it makes > >> to impose L2 vs lumped penalty boundary conditions. > >> You can take a look at them here > >> > >> http://villacamozzi.marionegri.it/~luca/HexLid3dL2.png > >> http://villacamozzi.marionegri.it/~luca/HexLid3dLumped.png > >> http://villacamozzi.marionegri.it/~luca/TetLid3dL2.png > >> http://villacamozzi.marionegri.it/~luca/TetLid3dlumped.png > >> > >> where the names of the images explain which case is which. > >> As you can see, imposing lumped boundary conditions does make a > >> difference. > >> In particular, apart from the spurious nonzero velocities on the > >> side walls, the top > >> velocity is 1 for lumped bcs, while it overshoots by 20% in case of > >> L2 in case of Tet10 > >> elements. We get a bit less pronounced overshoots (15%) with hexas > >> and L2. > >> > >> We tried lowering the absolute threshold of the linear system > >> solvers, with no appreciable > >> changes. > >> > >> Luca > >> > >>  > >> Luca Antiga, PhD > >> Head, Medical Imaging Unit, > >> Bioengineering Department, > >> Mario Negri Institute > >> email: antiga@... > >> web: http://villacamozzi.marionegri.it/~luca > >> mail: Villa Camozzi, 24020, Ranica (BG), Italy > >> phone: +39 035 4535381 > >> > >> > >> On Apr 4, 2007, at 5:09 PM, John Peterson wrote: > >> > >>> Luca Antiga writes: > >>>> Hi, > >>>>> One thing that seemed to help a bit (at least in 2D) was to use > >>>>> the > >>>>> "lumped" L2 projection (e.g. ex13). If memory serves, that > >>>>> solution > >>>>> "looked" slightly better (at least in 2D). > >>>> We confirm that this helps also in 3D. We'll show you images as > >>>> soon > >>>> as Lorenzo is around. > >>>> The situation changes sensibly, you see much fewer nonzero vectors > >>>> on the noslip faces. > >>>> > >>>> Ultimately we'll work with blood vessels, so we won't have > >>>> discontinuous boundary conditions. > >>>> However, I can tell you that we tried on a vessel with parabolic > >>>> inlet conditions (that go to zero > >>>> at the wall, so no discontinuity). With L2 boundary conditions, the > >>>> first ring of refined nodes on the > >>>> noslip side wall connected to the inlet face had nonzero velocity > >>>> vectors pointing opposite > >>>> to the inlet flow direction. > >>> > >>> Hmm... and the lumped L2projection looks slightly better than that? > >>> I will try implementing the "pinwheel" type forcing function for the > >>> Stokes problem with homogeneous zero Dirichlet BCs in 2D using > >>> adaptivity, > >>> and see what that gives us. > >>> > >>>>>> Yes, but then Gibbs' type ringing usually is large. What's > >>>>>> worse: as > >>>>>> you refine the mesh the boundary condition approximation will > >>>>>> converge > >>>>>> in the L2 norm, but it can't converge in L_infinity.. > >>>> > >>>> I don't know the details, so I'm not sure it makes sense, but it > >>>> looks to me like the presence and size of > >>>> overundershoots depends on the size of the coarselevel mesh. > >>>> Could > >>>> this be related to the way > >>>> hanging node constraints are handled (L2)? > >>>> Just to get more insight: will a uniformly AMR refined mesh behave > >>>> differently than a nonrefined > >>>> mesh with the same sized elements as the fine AMR ones? How much of > >>>> an influence will the coarselevel > >>>> mesh have? > >>> > >>> It shouldn't depend on what mesh you start with, unless it was > >>> coarse > >>> enough to have Galerkininstability type oscillations. In that > >>> case, > >>> local cellReynolds number violations can cause over/undershoots > >>> (for > >>> NavierStokes obviously, not Stokes flow). > >>> > >>> In answer to your second question, a "uniformlyrefined AMR mesh" > >>> should behave identically to a nonrefined mesh with the same size > >>> elements. I would be interested in seeing a case where it does not, > >>> if you have one. > >>> > >>> J > >>> > >>> > >>> > >>>> Thanks a lot for your time > >>>> > >>>> Luca > >>>> > >>>>  > >>>> Luca Antiga, PhD > >>>> Head, Medical Imaging Unit, > >>>> Bioengineering Department, > >>>> Mario Negri Institute > >>>> email: antiga@... > >>>> web: http://villacamozzi.marionegri.it/~luca > >>>> mail: Villa Camozzi, 24020, Ranica (BG), Italy > >>>> phone: +39 035 4535381 > >>>> > >>>> > >>>> On Apr 4, 2007, at 4:22 PM, John Peterson wrote: > >>>> > >>>>> Roy Stogner writes: > >>>>>> On Wed, 4 Apr 2007, Luca Antiga wrote: > >>>>>> > >>>>>>> I could live with non zero values on the zero velocity faces, > >>>>>>> but > >>>>>>> aren't > >>>>>>> those a bit large (10% of the top face velocity)? > >>>>>> > >>>>>> Yes, but then Gibbs' type ringing usually is large. What's > >>>>>> worse: as > >>>>>> you refine the mesh the boundary condition approximation will > >>>>>> converge > >>>>>> in the L2 norm, but it can't converge in L_infinity.. > >>>>>> > >>>>>>> I'm just worried that the situation might go out of control in > >>>>>>> complicated geometries, so that's why I'm a bit picky on this > >>>>>>> problem. > >>>>>> > >>>>>> It's not the geometry that's controlling the problem, it's the > >>>>>> discontinuity in the boundary conditions. > >>>>> > >>>>>> I think John's had somewhat smoother results by using an H1 > >>>>>> instead > >>>>>> of L2 boundary penalty, but when you try to force a continuous > >>>>>> approximation function to take on discontinuous values, there's > >>>>>> really no good way for it to react. > >>>>> > >>>>> Actually, I couldn't get the H1 projection to work (in 2D). I > >>>>> tried > >>>>> penalizing the tangential derivatives, to e.g. enforce du/dx=dv/ > >>>>> dx=0 > >>>>> along the lid. > >>>>> > >>>>> One thing that seemed to help a bit (at least in 2D) was to use > >>>>> the > >>>>> "lumped" L2 projection (e.g. ex13). If memory serves, that > >>>>> solution > >>>>> "looked" slightly better (at least in 2D). > >>>>> > >>>>>> Many people give up and just regularize the problem boundary > >>>>>> conditions. > >>>>> > >>>>> Indeed, the hyperbolic tangenttype regularized boundary > >>>>> conditions > >>>>> seem to be > >>>>> fairly standard in the literature for this type of problem. If we > >>>>> just > >>>>> want to be sure Stokes+AMR+Tets is working, let's try a test > >>>>> problem > >>>>> with continuous data? > >>>>> > >>>>> J 