Issue with defining quadrilateral mesh for H(c) and H(d)

Hi Community,

I am working with mixed finite element which contains: H(1), H(d) and H(c) spaces.
I have tried to use quad/hex meshes on solving my PDE,

from dolfin import *
from mshr import *
mesh = UnitSquareMesh.create(8, 8, CellType.Type.quadrilateral)
CGE = FiniteElement(“CG”, mesh.ufl_cell(), degreeCG)
CurlE = FiniteElement(“N1curl”, mesh.ufl_cell(), degreeCurl) # N1curl and N2curl
DivE = FiniteElement(“BDM”, mesh.ufl_cell(), degreeDiv) # RT and BDM
Z = FunctionSpace(mesh, MixedElement([CGE, CGE, CurlE, CurlE, DivE, DivE]))

but I’ve faced an error:

ufl.log.UFLException: Cellname “quadrilateral” invalid for “Nedelec 1st kind H(curl)” finite element.

So I went through Jack S.Hale’s post and I assumed probably H( d ) and H( c ) are not implemented yet.

It would be great if someone give me a hint on this case.
And if they are not implemented, Is there any other option to implement quad/hex meshes for H( c ) and H( d ).

Thank you in advance.

The only immediate way I know of would be to use the isogeometric H^1, H(\operatorname{curl}), and H(\operatorname{div}) spline spaces (which are defined on structured quad/hex meshes). These are supported through a library I wrote, tIGAr, although the very lowest-order case corresponding to classical finite elements would not work, and usage of tIGAr is somewhat different from standard FEniCS.

1 Like

Hello David,

I was trying to install tIGAr but I faced an error that was not listed in “Common installation issues”.

I am using dolfin 2019.1.0, and install it on anaconda (conda 4.5.0).

The installation error: import-im6.q16: not authorized tIGAr @ error/constitute.c/WriteImage/1037

Could you please let me know how can I resolve this issue?

Thanks.

I don’t use Anaconda myself and haven’t seen this error before. However, just Googling the first part of the error, it looks like maybe you’re running a script as an executable (i.e., ./scriptname.py in a Bash shell, instead of python3 scriptname.py) without including #!/usr/bin/env python3 at the top of the script. (See, e.g., this StackOverflow thread.)

1 Like