From: Roy S. <roy...@ic...> - 2010-04-08 17:18:00
|
On Thu, 8 Apr 2010, David Knezevic wrote: >> Oh, and even if adaptivity is working, you'll definitely need the >> coarse mesh to match up. Otherwise there's no way to enforce >> periodic continuity without "locking" destroying your accuracy. > > Thanks for the info Roy. We're not doing adaptivity, we just generated a mesh > (using gmsh) for a periodic channel flow, but the mesh generator doesn't > necessarily match up inflow and outflow nodes so it sounds like that is a > problem? Definitely. Imagine a grid of piecewise linears or bilinears, intended to be periodic from left to right, and offset the nodes on the right side down by just a little bit. For strict C0 continuity, then, the slope on the left bottom element must match the slopes on the two right bottom elements. But the slope on the second-from-bottom element on the right must match the second-from-bottom on the left, etc., and by the time you're done your "piecewise bilinear" mesh has been constrained to a single linear along that entire edge. Disaster. Your only hope in that case is to enforce periodicity weakly: use a DG term or mortar method or some such on those boundaries, remembering that you'd have to add the appropriate terms to the send_list & sparsity pattern by hand. It would probably be easier to fix up the mesh generator output. Copying this to libmesh-users; I haven't documented the PeriodicBoundary usage well enough, and it would be nice if people Googling it found *something*... --- Roy |