On 10/18/11 3:32 PM, Boyce Griffith wrote:
>
>
> On 10/18/11 1:48 PM, Boyce Griffith wrote:
>>> However, if your points are in the physical frame the best option
>>> (you don't need to modify the reinit behavior) is probably to find the
>>> reference points
>>> in your code with inverse map and then use reinit providing a vector
>>> of points
>>>
>>> FEInterface::inverse_map (elem->dim(), fe->get_fe_type(), elem,
>>> your_xyz_points, your_reference_frame_points);
>>> fe_neighbor_face->reinit(neighbor,&your_reference_frame_points);
>>>
>>> This assuming that you are using basis functions defined in the
>>> reference frame.
>
> Aha, I remember now why I need FE::reinit(elem,side,tolerance,pts) for
> this code --- I need to be able to compute surface normals at the
> points, and it seems like that must be done via this version of reinit().
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
------------------------------------------------------------------------------
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