Thread Previous • Date Previous • Date Next • Thread Next |
Anders Logg wrote:
On Thu, Jun 28, 2007 at 12:17:50PM -0400, Jake Ostien wrote:Garth N. Wells wrote:OK. Here's a related question, I need to check that my weakly enforced Dirichlet BCs are being properly handled. Right now I think I need to sample the discontinuous function along a given subset of the boundary (which I do by iterating through all the vertices and selected solution components by position), and manually integrate those values along the boundary for comparison with the prescribed value, say zero for simplicity. Is there a better way to do this? I am observing some noise (oscillations) in the projected solution near the boundaries and I am trying to figure out why.Jake Ostien wrote:It's not possible at the moment. The best approach for now is to project the discontinuous solution onto a continuous basis, and plot the continuous field.Hi,If even possible, does anyone know how to view the fully discontinuous solution (without the interpolation to the vertices)?-JakeSounds like you want to compute a functional of the computed solution?
exactly
Say you want to check the L2 error of the computed solution along a subset of the boundary. In FFC, do this:OK, this was easy to do (many thanks, this was much, much simpler than what I was going to try and do). Let me add a little context to the discussion. As an exercise, I am solving a 2D Linear Elasticity problem using DG1 vector elements. I can write down the answer on paper, so I am checking how well the method performs. I am finding that the weakly enforced Dirichlet conditions, u[0] = 0.0 on x = 0.0, u[1] = 0.0 on y = 0.0 are showing oscillations near the domain corners (the domain is the UnitSquare(#,#). Qualitatively, the solutions look good if the mesh is fine enough, but quantitatively, the functional I am calculating on the fixed Dirichlet boundary is not identically zero. I get numbers around 1e-05 to 1e-07 for the L2 norms. I expect to get much closer to machine precision than that, but maybe that assumption is misguided? Anyone have any thoughts or advice on this?element = FiniteElement(...) u = Function(element) u0 = Function(element) e = u - u0 M = e*e*ds Here, u is your computed solution, u0 is a boundary condition (you want u = u0 on the boundary). Then the functional M will be the L2 error squared along a subset of the boundary. Assemble the functional in DOLFIN by double L2error = assemble(M, mesh, sub_domain);
Just for the record, I was under the (possibly false) assumption that I could not use SubDomains with discontinuous functions. I don't remember where I picked that up. Is it true? (I could test it fairly easily if necessary)where M is the form (taking two arguments u and u0) and sub_domain is the sub_domain you want to integrate over.
Thanks again, Jake
/Anders _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@xxxxxxxxxx http://www.fenics.org/mailman/listinfo/dolfin-dev
Thread Previous • Date Previous • Date Next • Thread Next |