Thanks Yves, I believe I am zeroing in on what I need due to the help from you guys. From the documentation you linked to it seems that I need to use the identity matrix for M.
So I copied and modified the Nedelec code, setting M to the identity instead, and now the mass matrix elements are correct for the few examples I have calculated by hand, including differing tetrahedron sizes. There are some sign-issues that I may or may not need to address, although I'm not yet sure if that will turn out to be important. I will now study the RT0 code to see if I need to do something similar there to get the mass matrix I need for the Whitney 2-forms. The reason I need to do all this is because I am going to do a simulation that involves calculation of an expression that contains the Whitney mass matrix, in both the 1-form and 2-form cases, for a tetrahedral mesh in 3D. Torquil On 24/09/10 12:58, Yves Renard wrote: > > > The transformation of the basis function from the reference element to the > real one is made via the definition of the matrix M in the method > mat_trans(...) (line 1045 of getfem_fem.cc for RTO and line 1230 for Nedelec > element). The role ofmatrix M is shortly explained here: > > http://download.gna.org/getfem/html/homepage/project/femdesc.html#finite- > element-methods-description > > The rule is the following : For RT0 element, the degree of freedom is the > normal component at the center of a face, for Nedelec one this is the > tangential component. This means that the normal or tangential component of > the corresponding shape functions is equal to 1. > > Yves. > > > > On vendredi 24 septembre 2010, Torquil Macdonald Sørensen wrote: >> Thanks Ronan, that is very interesting. I checked the source file >> getfem_fem.cc, around lines 1300-1320 where the computation of the Nedelec >> basis functions for the reference element is done, but could find no such >> division by an edge length. >> >> At that point in the source code I did not find any code that describes how >> this is converted to the actual tetrahedron element (not the reference), >> but I'm sure I'll find it somewhere :-) >> >> I'll also do some tests by multiplying the GetFEM edge basis mass matrix >> elements by the corresponding edge lengths to see if I get the same results >> as I get when manually calculating mass matrix elements from the >> definitions of the Whitney 1-form basis that I mentioned in the first >> email. >> >> Thanks again for that very useful info! >> >> Torquil >> >> On 23/09/10 20:23, Ronan Perrussel wrote: >>> Hi Torquil, >>> >>> I have an element which is not an answer to your issue but it can help. >>> I never used the RT0 elements but I used the Nedelec elements and the >>> shape function associated to edge {ij} is : >>> 1/length({ij})*(lambda_i grad lambda_j - lambda_j grad lambda_i). >>> >>> Maybe something similar is done for RT0 elements (for instance a dof >>> associated to a face is not the flux through this face but the mean >>> value of the normal component of the vector field on this face). >>> >>> Best regards, >>> Ronan >>> >>> Le 23/09/2010 20:01, Torquil Macdonald Sørensen a écrit : >>>> Hi! >>>> >>>> I'm having trouble with calculation of mass matrix elements on a 3d >>>> tetrahedron >>>> mesh. I have two different cases. In the first case I want to use >>>> Whitney 1-form >>>> edge elements, and in the second case Whitney 2-form face elements. >>>> I'm given to >>>> understand that these are the same as the NEDELEC and RT0 elements >>>> offered by >>>> GetFEM. >>>> >>>> The Whitney elements are defined as follows: For a point i, lambda_i >>>> is the >>>> usual affine function that is equal to 1 at i, and equal to zero at >>>> neighbouring >>>> points. >>>> >>>> For an edge {ij} going from point i to point j, the Whitney 1-form >>>> element is >>>> >>>> lambda_ij := lambda_i grad lambda_j - lambda_j grad lambda_i >>>> >>>> The "2-form" element for a face {ijk} is >>>> >>>> lambda_{ijk} := 0.5*(lambda_i (grad lambda_j) x (grad lambda_k) + cyclic >>>> permutations of {ijk}). >>>> >>>> When varying the "fineness"/lattice spacing of the mesh for a given >>>> physical >>>> domain [0,1]^3, these definitions lead to the following behaviour of >>>> the mass >>>> matrix components: >>>> >>>> m_ff' ~ 1/h >>>> >>>> m_ee' ~ h >>>> >>>> where m_ff' is a component of the mass matrix for the 2-form elements, >>>> m_ee' is >>>> the same for the 1-form elements, and h is the lattice spacing. >>>> >>>> However, in my case, the components m_ff' decreases when h decreases. >>>> Does this >>>> indicate a difference between the definition of the RT0 element >>>> relative to the >>>> Whitney 2-form element? If so, is it possible to get one from the >>>> other by a >>>> simple multiplication by h? >>>> >>>> Thanks >>>> Torquil >>>> >>>> >>>> _______________________________________________ >>>> Getfem-users mailing list >>>> [email protected] >>>> https://mail.gna.org/listinfo/getfem-users >> >> _______________________________________________ >> Getfem-users mailing list >> [email protected] >> https://mail.gna.org/listinfo/getfem-users > > _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
