Hi,

First, I want to thank the authors of this software package and the tutorials for all their hard work. The latter are especially excellent and really make learning this extensive package very easy and intuitive.

I'm having a bit of trouble with high-order Nedelec Elements. Everything compiles and runs without error, but when I use an order higher than 0, the computed solution is very poor. Using one of the 2D examples from Anna's paper, with order 0 elements, on a certain small grid I get an L2 error of 1.610e-01, but when I use order 1, I get an error of 8.722.

From what I understand, the gradients of Nedelec elements are not computed correctly, but when one uses them to compute the curl, the "wrong parts cancel" and the curl ends up correct. Is that right? I am using a self-written curl function, implemented in the obvious way (for 2D only, here):

  template <int dim>
  double MaxwellToy<dim>::curl (const Tensor<2,2> &Gradients) const
  {
    return (Gradients[1][0] - Gradients[0][1]);
  }


Do I need to do something special to make Nedelec elements work for orders > 0? Is it a matter of something like enforcing a divergence condition on the elements? The field I am attempting to compute is div free, and for order 0 elements, we have that automatically (but not for order 1 elements). Thanks for your help!


Best,
-J
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to