Hi Luca,

Brilliant! I'll definitely take a look inside FEValues to see how its
done - I'm sure it'll be quite apparent when I see it.

Thanks very much for your time and the help.

Best regards,
J-P

On 2 February 2010 14:45, Luca Heltai <[email protected]> wrote:
> 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

Reply via email to