getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] Bug? in enumerating DOFs on region and faces


From: Renard Yves
Subject: Re: [Getfem-users] Bug? in enumerating DOFs on region and faces
Date: Mon, 19 Jul 2010 14:29:58 +0200
User-agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.2)



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 <address@hidden> 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  < address@hidden  >
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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]