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