What we've done here is inherit from QBase and override shapes_need_reinit() to 
return true.  Then, when we hit each element we call a function on our qrule 
ourselves (like qrule->recalculate_points(Elem * elem) ) that passes in 
information and allows the qrule to recalculate it's points.

After that we call fe reinit()... and the shape functions will get recomputed 
at the correct positions because shapes_need_reinit() will return true.

You will need to implement dummy init_1D, init_2D and init3D functions that 
basically do nothing (ours just set this->type and this->plevel).... but you 
won't actually do anything useful in those functions.

Basically, the QBase interface doesn't have any functions that take an Elem* 
for reinitialization... so you would have to do something like this no matter 
what.

Let me know if that doesn't make sense.

If you have a better way let me know.

Derek

On Jun 29, 2011, at 1:25 PM, Boyce Griffith wrote:

> I am trying to setup an adaptive quadrature rule that will use different 
> quadrature points/weights on different elements in the mesh.  (In this 
> particular application, the number of quadrature points depends on the size 
> of the element.)
> 
> I am not sure how to get this to work, because QBase::init() seems to default 
> to using precomputed points/weights whenever you pass in the same element 
> type and p level, even for cases in which QBase::shapes_need_reinit() returns 
> true.
> 
> Modifying QBase::init() so that it does NOT skip initializing the quadrature 
> rule if shapes_need_reinit() seems to have the desired effect: the quadrature 
> rule appears to be reinitialized for each element.
> 
> I wonder if this (or something similar) should be the default behavior?  Is 
> there already another / better way to accomplish this?
> 
> Thanks!
> 
> -- Boyce
> <quadrature_diff.txt>------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security 
> threats, fraudulent activity, and more. Splunk takes this data and makes 
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2d-c2_______________________________________________
> Libmesh-devel mailing list
> Libmesh-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libmesh-devel


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to