Dear Roman,

Of course, I was a wrong in my last message: the hermite shape  
functions corresponding to
the derivative is zero on segment ends ! So, with the policy that only  
dof associated with
nonzero shape functions on a boundary is declared on that boundary,  
the declaration in the
Hermite element on the segment was correct !
But, for the other Hermite elements (on 2D or 3D or for Argyris  
element) what is implemented does
not follow the policy. In fact all the derivative dof are declared on  
a face when the
corresponding finite element node is on that face. Weither or not the  
shape function
is zero on that boundary.

So may be, you are true, this is perhaps a small Pandora box !
At least the things have to be clarified.

for instance, the P0 element declare its unique dof on each face,  
because the shape function
is nonzero on each face of the element. Conversely, the P1  
nonconforming element declare each
of its dof on only one face even though all of its shape functions are  
nonzero on all the faces.

I agree that it is more correct to declare the derivative dof of the  
Hermite element on the segment
on the corresponding faces.

May be the right policy would be to say that a dof is on a face if and  
only if the corresponding node
(when existing) is on that face.

What is your opinion on that ?

Yves.



> Posted by Yves Renard on July 19, 2010 - 11:05:
>
>
> Dear Roman,
>
> The policy for which a dof is on a face or not is rather clear : A  
> dof should be declared on a face if the corresponding shape function  
> is nonzero on that face. Surprisingly, the belonging on faces of the  
> derivative dof of the segment hermite element was explicitely  
> disabled (getfem_fem.cc lines 1471 and 1477). This was not correct,  
> of course and I don't remember why it is so !
>
> Thank you for this bug report !
>
> Yves.



Roman Putanowicz <[email protected]> a écrit :

> Dear Yves,
>
> I think I have found a bug in accessing DOFs on regions and faces.
>
> The setup is as follows : single segment mesh with HERMITE fem.
> I create two mesh regions (for the left end node and for the right end node).
>
> The output of the demo program (sent in attachment) is as follows:
>
> -----------------------------------
> $ ./dofs_of_region
> DOFs on the left end : [0]
> DOFs on the right end : [2]
> DOFs on convex : 0 1 2 3
> DOFs on face 0 of convex : 2
> DOFs on face 1 of convex 0
> -----------------------------------
>
> DOFs on convex are listed properly as 0 1 2 3.
> I would expect DOFs on left end region as well as dofs on face 1 of  
> the convex
> to be [0,1] and not just [0]. So it seems that the dofs for  
> derivative degrees
> of freedom are missing.
>
> I have looked at code for dal::bit_vector mesh_fem::basic_dof_on_region()
> but I do not see there provision for non-Lagrangian elements.
>
> I can check if the fem of a convex is Lagrangian but what should be done
> if it is not?
>
> I am afraid that this can be a little pandora box :( but hope that this is
> not) (in particular I have in mind the code for setting Dirichlet boundary
> condition on Hermite elements).
>
> In attachment there is mentioned test code to reproduce the bug.
>
> Regards
>
> Roman
> --
> Roman Putanowicz, PhD  < [email protected]  >
> Institute for Computational Civil Engng (L-5)
> Dept. of Civil Engng, Cracow Univ. of Technology
> www.l5.pk.edu.pl, tel. +48 12 628 2569, fax 2034
>




_______________________________________________
Getfem-users mailing list
[email protected]
https://mail.gna.org/listinfo/getfem-users

Reply via email to