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

Reply via email to