Dear Praveen,
> Now I would like to solve Maxwell equations on general quad meshes. For this
> I have to use FE_RaviartThomas, but I do not completely understand this
> space.
This statement is puzzling, since Raviart-Thomas elements are for
H^div, while at least what I consider Maxwell problems are posed in
H^curl.
> I know that the dofs are certain moments on the faces and interior of the
> cell. But what are the test functions for these moments ? How can I get
> these test functions ?
I just taught a course on mixed finite elements. Check out the
definition on page 97 here:
http://www.mathsim.eu/~gkanscha/notes/mixed.pdf
It's Definition 4.2.35. What you see is that the test functions are
the space Q_k on the faces and the Nedelec elements in the interior.
Note that the definition is with respect to test function spaces, not
to actual test functions. For that, you have to choose a basis for
these spaces.
On the faces, we have two different bases in deal.II: one using a
Legendre basis for Q_k, the other uses Lagrange interpolation in the
Gauss points on each face. I confess, I forgot how we did the
interior.
If you want to understand the mechanisms behind the choice of test and
shape function spaces, you cannot avoid the articles by Arnold, Falk,
and Winther on finite element exterior calculus. For rectangles, also
Arnold and Awanou, and Barnold, Boffi and Bonizzoni.
When it comes to general quadrilaterals, search for the Piola
transform in my notes. And for an in-depth analysis of convergence,
the articles by Arnold, Boffi, and Falk. I am not completely d'accord
with their conclusions, since I see the divergence of RT_k in the dual
of Q_k, and those spaces do not naturally coincide on general
quadrilaterals.
> Also what do the shape functions look like ?
Let me explain 2D. 3D is analogous. We have two shape function sets
for each direction. The shape functions for the x-component of the
vector associated with the two vertical faces are tensor products
between the basis in y (Legendre or Lagrange as described for the test
functions above) and polynomials in x such that they are one on this
face, zero on the other and all interior degrees of freedom vanish.
Similarly, you define basis functions for interior degrees of freedom.
Then you do the same for the y-component, switching x and y.
> I am looking for some references where I can read more about this space, wrt
> how it is implemented in deal.II
For the implementation of such spaces, you have two options:
1) Find out what the basis functions for the chosen node value set
look like and implement them directly. This would have been fairly
easy if we had had a strict tensor product concept and applied it.
Unfortunately, we didn't at the time.
2) you take a convenient basis (Monomials, Legendre, Lobatto), then
you apply each node functional to each basis function, which gets you
a square matrix. Applying the inverse of this matrix to the vector of
the original basis functions, you get the basis you want. This is,
what I implemented at least for the non-nodal version.
I hope this helps for the moment.
Best,
Guido