On Dec 1, 2009, at 12:40 PM, Roy Stogner wrote:
>
> On Tue, 1 Dec 2009, Derek Gaston wrote:
>
>> Personally though... if you're going to go this far with it... how
>> about fleshing out FunctionBase so that it has gradient() and
>> hessian() functions... and then making ExactSolution inherit from
>> that? We need to find _one_ way to specify "Function" objects in
>> libMesh....
>
> This sounds like a very good idea.
>
> A very flexible one, too. Those gradient and hessian functions could
> default to finite-differencing implementations, for instance, but be
> overridable with analytics. Or better yet, this could be the first
> place we experient with Sacado integration...
BTW this is EXACTLY what I did with Encore at Sandia. Everything there was
driven off of these generic "Functions"... we even represented solutions using
functions (much like MeshFunction) in such a way that the input to all of our
error indicator classes were Function objects... you could even pass in
analytic functions to the error indicator objects... which can be useful for
verifying error indicators.
Like you say... solution derived functions used shape functions to find their
gradients... while analytic functions had an analytic representation. We had
planned on doing _both_ finite differencing and Sacado to do automatic
gradients as well... but I left before that work got completed (it might be
there now though... I don't know).
I've often thought that libMesh needed this same type of capability... but
never have found the time to do something about it (as is my general M.O.)....
Also... just to interject about the interface a bit... it can be handy to have
the ability to query a function in cartesian space and time (like FunctionBase
allows now) AND also allow querying them based on an element and a point
within that element. For solution based functions this can be a HUGE speed
up... for things like error indicators.
Of course I don't necessarily expect libMesh to go all the way with this
concept like we did in Encore. I'm just putting out there what's possible with
a configuration like this.
Derek
------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing.
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel