Nedelec elements of 2nd kind broken?

Asked by Nico Schlömer

When replacing the elements "Nedelec 1st kind H(curl)" by "Nedelec 2nd kind H(curl)" in undocumented/curl-curl/python/demo_curl-curl.py, one gets the following error

Traceback (most recent call last):
  File "demo_curl-curl.py", line 73, in <module>
    plot(J)
  File "/usr/lib/python2.7/dist-packages/dolfin/common/plotting.py", line 121, in dolfin_plot
    return viper_dolfin.plot(make_viper_object(object, mesh=mesh), *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 452, in plot
    fig = _plotter.plot(data, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 401, in plot
    return self.autoplot(plot_object, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 415, in autoplot
    plotter = Viper(plot_object, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 60, in __init__
    self.plot(data, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 85, in plot
    plot_method(data, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/viper/viper_dolfin.py", line 153, in plot_genericfunction
    assert vmax >= vmin, "Empty range, please specify vmin and/or vmax"
AssertionError: Empty range, please specify vmin and/or vmax

If vmin and vmax are provided to the plotter, the color bar tick marks are NaNs.

Is it possible to inspect the operator or solution functions for NaNs?

Question information

Language:
English Edit question
Status:
Answered
For:
DOLFIN Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Marie Rognes (meg-simula) said :
#1

To answer your question whether it is possible to inspect the operator or solution function, yes, please read the tutorial!

For instance the first solve call in that demo can be replaced by

a = inner(curl(v0), curl(u0))*dx
L = -inner(v0, dbdt)*dx
A = assemble(a)
info(A, True)
b = assemble(L)
info(b, True)
bc.apply(A, b)
solve(A, T.vector(), b)
info(T.vector(), True)
exit()

I don't think the Nedelecs of the 2nd kind are completely broken, but there seems to be an issue with applying strong boundary conditions. Please report a bug, and I'll take a look when I get the chance.

Can you help with this problem?

Provide an answer of your own, or ask Nico Schlömer for more information if necessary.

To post a message you must log in.