Re: [Libmesh-users] Getting access to gradients at node points From: Nasser Mohieddin Abukhdeir - 2008-09-29 00:42:06 ```I was thinking about one of those approaches, but it seems like the path of least resistance is to run postprocessing code afterwards that just uses FEM to solve N stationary problems, where N is the number of timesteps from the main simulation. I am already tight on resources (during the main simulation) and am a bit intimidated by writing code that deviates from the DiffSystem framework (at this point in my LibMesh career :). This approach has the benefit of: 1) Resulting in flexible post-processing code where I don't have to skimp on the number of variables because of memory constraints (that would exist if I was doing this during my main simulation). 2) I can change my mind as many times as I want and rerun this postprocessor in case I need different quantities. 3) This is an element independent implementation. Are there any drawbacks to doing this versus one of the Gradient Recovery methods? Nasser Mohieddin Abukhdeir Graduate Student (Materials Modeling Research Group) McGill University - Department of Chemical Engineering http://webpages.mcgill.ca/students/nabukh/web/ http://mmrg.chemeng.mcgill.ca/ Roy Stogner wrote: > On Sat, 27 Sep 2008, Derek Gaston wrote: > > >> Now, for C1 continuous elements (such as Clough-Toucher's, >> Hermite's, etc.) you should be able to get the value of the gradient >> at the nodes pretty easily: it should be in your solution vector. >> Obviously, I've never used these elements or I would know the answer >> to that... maybe Roy could fill us in. >> > > Currently the C1 elements have degrees of freedom corresponding to x, > y partial derivatives at vertex nodes, but they don't have any degrees > of freedom which can give you the whole gradient at a second-order > node. > > In general, the right way to get the well-defined gradient on a C1 > node is the same way you'd get the cheapest O(h^p) gradient > approximation on a C0 node: start from an adjoining element, and do a > dof-weighted sum of its shape functions at that point. > > >>> One way to get an answer (John suggested this to me once) is to >>> compute the gradients at quadrature points and then do an L2 >>> projection of that solution, and then just sample the projected >>> solution at the nodes. >>> >> Yep... this is what's calle "Gradient Recovery". There are several >> methods for doing this... >> > > Yup. For instance: if you do just a sum (weighted by element size? > angle? I forget) of the local gradients approaching a node on all > elements touching that node, you do get an O(h^{p+1}) approximation > that way. That's the first step to the popular Zienkiewicz-Zhu error > estimator, and it may be good enough (and cheap enough) for whatever > Nasser needs too. > --- > Roy > ```