> 
> Looking at the implementation of FE<Dim,T>::side_map, it seems like it should 
> be possible to avoid calling inverse_map() in the reinit(elem,side,...), even 
> when there are user-supplied points, by doing something like:
> 
> // Find where the integration points are located on the
> // full element.
> const std::vector<Point>* ref_qp;
> if (pts != NULL)
>   ref_qp = pts;
> else
>   ref_qp = &qrule->get_points();
> std::vector<Point> qp; //this->inverse_map (elem, xyz, qp, tolerance);
> this->side_map(elem, side.get(), s, *ref_qp, qp);
> 
> One other change is that side_map() now needs to reinit values if 
> shapes_on_quadrature is false.
> 
> Does this seem correct?  It appears to work in my tests.
> 
> -- Boyce

Yes, it is correct.
I think that it makes sense to add 

    if(qrule->shapes_need_reinit())
       shapes_on_quadrature = false;

after line 251 and 156 of fe_boundary.C (that is after qrule->init()) so that 
the reinit on side behaves like the reinit on elements.

Thus you should be able to fix side_map 
simply by adding a !shape_on_quadrature condition.

This of coarse means that the pts vector should be
a vector of points on the reference side.

Lorenzo


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to