Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread David Knezevic
On 05/10/2012 09:28 PM, Paul T. Bauman wrote: On Thu, May 10, 2012 at 8:21 PM, David Knezevic mailto:dkneze...@seas.harvard.edu>> wrote: I'm curious, what type of vector-valued elements are on the drawing board? Nedelec? Raviart-Thomas? Nedelec ASAP and RT will likely follow shortly

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Paul T. Bauman
On Thu, May 10, 2012 at 8:21 PM, David Knezevic wrote: > > I'm curious, what type of vector-valued elements are on the drawing > board? Nedelec? Raviart-Thomas? > Nedelec ASAP and RT will likely follow shortly thereafter. Best, Paul --

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread David Knezevic
On 05/10/2012 06:37 PM, Roy Stogner wrote: > Paul Bauman has an application that's motivating him to put > vector-valued FE capabilities into libMesh, and I've got a > shame-this-wasnt-done-years-ago that's motivating me to help, so we're > hashing out design ideas now. I'm curious, what type of v

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Derek Gaston
As long as we're on this subject let me throw a few things out there I've recently spent a good amount of time optimizing our variable value / gradient / second derivative evaluation code. I've been trying to get as much of it to vectorize as possible using the Intel compiler. This is import

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Boyce Griffith
On 5/10/12 7:05 PM, Roy Stogner wrote: > > On Thu, 10 May 2012, Boyce Griffith wrote: > >> Is it feasible to template over the return type in FEBase and then >> have the derived classes pick either scalar or vector versions? > > Hmm... yes, actually. We'd need some kind of traits classes to tell

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Roy Stogner
On Thu, 10 May 2012, Roy Stogner wrote: > So, 2.: Do we create FEAbstract, which doesn't include *phi* data or > get_*phi* methods, then derive FEBase and FEVectorBase from it? Or do > we just add get_vec_*phi* methods (and vec_*phi data) to FEBase? > > With the latter option, we'd have a bunch

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Roy Stogner
On Thu, 10 May 2012, John Peterson wrote: On Thu, May 10, 2012 at 4:37 PM, Roy Stogner wrote: So, 2.:  Do we create FEAbstract, which doesn't include *phi* data or get_*phi* methods, then derive FEBase and FEVectorBase from it?  Or do we just add get_vec_*phi* methods (and vec_*phi data) to

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Roy Stogner
On Thu, 10 May 2012, Boyce Griffith wrote: > Is it feasible to template over the return type in FEBase and then have the > derived classes pick either scalar or vector versions? Hmm... yes, actually. We'd need some kind of traits classes to tell the code that GradientOf::type is Gradient and G

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread John Peterson
On Thu, May 10, 2012 at 4:37 PM, Roy Stogner wrote: > > So, 2.:  Do we create FEAbstract, which doesn't include *phi* data or > get_*phi* methods, then derive FEBase and FEVectorBase from it?  Or do > we just add get_vec_*phi* methods (and vec_*phi data) to FEBase? The former sounds pretty good.

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Roy Stogner
On Thu, 10 May 2012, Kirk, Benjamin (JSC-EG311) wrote: > I always cache a reference to the shape function vectors I need > outside the element loop so in this case I can't imagine there is a > difference between an inline and virtual function call. You'd be surprised - in my degenerate "icpc fig

Re: [Libmesh-devel] Vector-valued FE

2012-05-10 Thread Kirk, Benjamin (JSC-EG311)
I always cache a reference to the shape function vectors I need outside the element loop so in this case I can't imagine there is a difference between an inline and virtual function call. -Ben On May 10, 2012, at 5:37 PM, "Roy Stogner" wrote: > > Paul Bauman has an application that's motiv

[Libmesh-devel] Vector-valued FE

2012-05-10 Thread Roy Stogner
Paul Bauman has an application that's motivating him to put vector-valued FE capabilities into libMesh, and I've got a shame-this-wasnt-done-years-ago that's motivating me to help, so we're hashing out design ideas now. Two design decisions that've come up, submitted for general commentary: 1.: