From: Povolotskyi, M. <mpo...@pu...> - 2019-03-21 13:51:37
|
Thank you, John, at least now we are on the same page. Let me tell you what I'm doing, and hopefully you can suggest an effective way without using protected methods. I'm solving a Newmark system with vector finite elements (Nedelec elements). I need to compute solution, curl of the solution and derivative over time of the solution at a specific set of points for every time step. To do so I pre-compute local coordinates of the points, then I do something like this: FEGenericBase<RealGradient>* fe_new = fecontext.cached_fe<RealGradient>(elem->dim(), fe_type); fe_new->reinit (elem, &(local_points)); After this I have access to fe_new->get_phi() and can compute all what I need. What would you suggest? Thank you, Michael. On 3/21/2019 9:08 AM, John Peterson wrote: On Thu, Mar 21, 2019 at 7:59 AM John Peterson <jwp...@gm...<mailto:jwp...@gm...>> wrote: On Wed, Mar 20, 2019 at 11:47 PM Povolotskyi, Mykhailo <mpo...@pu...<mailto:mpo...@pu...>> wrote: Dear LibMesh developers, in the documentation http://libmesh.github.io/doxygen/classlibMesh_1_1FEMContext.html#ab308f0ea12c91d002e896e0217d3c3c9 the method cached_fe is public. In the release 1.4.0 it is protected. Your link doesn't go to the cached_fe() implementation for me, and as far as I can tell, the cached_fe() interface was added as a protected member function in this commit: commit 6a9f9060f5596085b9801c5caeafc4d19d1fc54a Author: Roy H. Stogner <roy...@ic...<mailto:roy...@ic...>> Date: Mon Oct 2 12:59:34 2017 -0500 Cache FEMContext::point_value() FE Objects This really ought to be redone entirely, but hopefully we can get a little performance improvement right away by just avoiding de and reallocations. and it's never been public. OK, after scrolling up, it looks like cached_fe does show up among the other public APIs in doxygen: https://drive.google.com/file/d/1JqJCROKxhsU084JPgShsIY6haCKUzP2G/view?usp=sharing but I'd chalk that up to a bug in Doxygen... this function has always been protected AFAICT. -- John |