>
> 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