How to properly defined element of PkEdge

I’m trying to implement maxwell equations in 2D using the so called H model in H(curl). I cannot figure out how to declare the components of the vectorial field. I’ve naively tried:

func Pk = P1edge;
fespace Ah(Th, Pk);
Ah u, v, u0;

macro Curl(ux, uy)[dx(uy)-dy(ux)]//
macro CrossN(ux, uy)[ux*N.y-uy*N.x]//

real rho = 1;
real T = 0;
real dt = 1;

problem mqs([ux,uy], [vx,vy], solver=sparsesolver, eps=1.e-10)
     = int2d(Th)(Mu0 * ( [ux,uy]'*[vx,vy] )/dt)
     - int2d(Th)(Mu0 * ( [ux,uy]'*[vx,vy] )/dt)
     + int2d(Th)(rho * Curl(ux,uy)' * Curl(vx,vy))
     + on(BoxWall, ux=uxinit, uy=uyinit)

But ff complains with The Identifier ux does not exist
What’s the correct way to do that?


I’m not sure P1Edge are in H(\text{curl}), how about using RT1Ortho from Element_Mixte?