Those you can obtain by the gradient of the transformation on the surface (namely, the Jacobian). If you open the source code of FEValues and look at the way the normals are computed, you will see that they use the Jacobian. You can obtain this information by setting the appropriate flags in the FEFaceValues class, and then calling
fe_v.jacobians(0) which will give you the vectors you are looking for. Luca. On Tue, Feb 2, 2010 at 12:50 PM, Jean-Paul Pelteret <[email protected]> wrote: > On 2 February 2010 13:49, Jean-Paul Pelteret <[email protected]> wrote: >> Hi Luca, >> >> Yes thanks, that is partially what I'm looking for. That would allow >> me to get the normal at any point on the face. However, I'm also >> looking for the two tangential (covariant base) vectors that, when >> operated on by a cross-product, give the normal vector. Any ideas? >> >> J-P >> >> On 2 February 2010 13:37, Luca Heltai <[email protected]> wrote: >>> I'm not sure I understand what you need, but assuming I do, this is >>> how I'd do what I think that you want to do. :) >>> >>> 1. express your arbitrary point in reference coordinates on the face >>> (you can do this by transforming your real point back to the reference >>> cell, then project it to the face of interest) >>> 2. construct a quadrature formula that contains the given point and >>> 1.0 as a weight >>> 3. construct a FEFaceValues object with the given quadrature formula >>> and all the flags you need. >>> >>> I hope this clarify things a bit, if not, I might have not understood >>> what you needed... >>> >>> Luca. >>> >>> If the point is truly arbitrary, then you have to >>> >>> On Tue, Feb 2, 2010 at 12:20 PM, Jean-Paul Pelteret >>> <[email protected]> wrote: >>>> Hi all, >>>> >>>> I'm currently working on a contact formulation for solid mechanics, >>>> and it requires that I'm able to get information at an arbitrary point >>>> on a boundary face on a cell. In particular, I need to get the >>>> convected bases at this point (one of them will be the outward normal >>>> to the face at the point, while the others, when mapped back to the >>>> reference cell, will give the other two isoparametric basis vectors). >>>> I see that there is a tool in the mapping class, namely >>>> Mapping::transform, that potentially caters for this but requires >>>> input information ( const InternalDataBase &internal) that I don't >>>> think one has access to through a public interface in either the >>>> mapping or fe_values classes. >>>> >>>> Is there any function that I can use to get what I need or am I >>>> missing something obvious regarding the function I've described above? >>>> >>>> Thanks in advance for the help. >>>> Best regards, >>>> Jean-Paul >>>> _______________________________________________ >>>> dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii >>>> >>> >> > _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
