New feature: DOLFIN Quad/Hex mesh support

1,281 views
Skip to first unread message

Jack Hale

unread,
Sep 5, 2017, 7:12:55 AM9/5/17
to fenics-support, fenic...@googlegroups.com
Dear all,

We are delighted to announce that DOLFIN master branch now contains support for solving PDEs on Quadrilateral and Hexahedral (quad/hex) cell meshes. This feature will be released in the upcoming 2017.2 version of the FEniCS Project. This was implemented by Ivan Yaschuk under the Google Summer of Code program through our fiscal sponsorship arrangement with NumFOCUS. You can read Ivan’s detailed technical notes here: https://nbviewer.jupyter.org/gist/IvanYashchuk/48bff62b155e31f85de975b24b23e4cb

We are looking for more in-depth testing and feedback from the community on this new feature. The easiest way to try the new feature is to use our pre-built Docker containers:


If you do find any issues, please file an issue on the appropriate Bitbucket bug tracker https://bitbucket.org/fenics-project. If in doubt, file under the DOLFIN tracker and we will move it to the appropriate place.

Summary of the new functionality:

- Support for FiniteElements of the Continuous and Discontinuous Lagrange family (no H(curl) or H(div) conforming elements, yet).
- Many existing user codes can be changed to use quadrilateral or hexahedral meshes simply by changing the mesh construction. The following documented demos now use quad/hex:


- The following DOLFIN features are currently unsupported when using quad/hex meshes: 
    - point evaluation (*) (requires changes to FIAT and FFC, see Ivan’s notes)
    - CellSize(mesh) UFL/DOLFIN primitive (*) (already in progress)
    - H(div) and H(curl) elements (-) (requires implementation of consistent mesh ordering (facets/faces/edges) in DOLFIN mesh class)
    - mesh refinement (-) (would require supporting meshes with hanging nodes)
    - collision detection (-) (requires new routines in dolfin/geometry)
    - VTKFile output (XDMF works, however)
    - matplotlib plotting (X3DOM works, however)

Any help implementing the above features would be greatly appreciated! Stop by #development on Slack and we will be more than happy to assist.

The features marked (*) will be fixed as soon as possible. The features marked (-) are long term goals. Unmarked features are unlikely to be implemented as their are sufficiently good alternatives in place.

Jack Hale
Research Scientist
University of Luxembourg 

ryandm...@gmail.com

unread,
Nov 15, 2018, 5:32:04 AM11/15/18
to fenics-support
When will this be available for use? I cannot find it on FEniCS 2018.1.0

Jack Hale

unread,
Nov 15, 2018, 8:04:46 AM11/15/18
to ryandm...@gmail.com, fenics-support
It works, see e.g.:

https://comet-fenics.readthedocs.io/en/latest/demo/reissner_mindlin/reissner_mindlin_quads.py.html

There are some limitations; we have not yet implemented consistent mesh ordering. This is needed for 'general' quad and hex meshes and H(div)/H(curl). This will be introduced in the new dolfinx project at some point in the future.

Jack

--
You received this message because you are subscribed to the Google Groups "fenics-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fenics-suppor...@googlegroups.com.
To post to this group, send email to fenics-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fenics-support/d72f9c31-5e8f-4ef6-8eb1-303145c5c95c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

ryandm...@gmail.com

unread,
Nov 15, 2018, 2:44:44 PM11/15/18
to fenics-support
Thanks Jack.

I have managed to produce a unit cube mesh using:

UnitCubeMesh.create(N,N,N,CellType.Type.hexahedron)

however the same does not work for a box mesh:

BoxMesh(Point(X1,Y1,Z1),Point(X2,Y2,Z2),DX,DY,DZ,CellType.Type.hexahedron)

Have I got the syntax wrong?

Thanks,

Ryan

Jack Hale

unread,
Nov 15, 2018, 3:43:30 PM11/15/18
to ryandm...@gmail.com, fenics-support
No. It's just not been implemented!

ryandm...@gmail.com

unread,
Nov 15, 2018, 4:47:10 PM11/15/18
to fenics-support
Do you know when it will be available?

abhiy...@gmail.com

unread,
Nov 18, 2018, 8:12:55 AM11/18/18
to fenics-support
Hello Jack, 

I am working on creating a mesh of hexahedron elements using MeshEditor class. When I try to create a function space for this mesh I get the following error:

"Mesh is not ordered according to the UFC numbering convention. Consider calling mesh.order()."

I tried to use the mesh.order function but it is currently not implemented for the hexahedron cells. Thus I will be very grateful if you could please let me know if there is any workaround for this issue.

Thank you very much. I look forward to hearing from you soon.

Best regards,

Jack Hale

unread,
Dec 6, 2018, 6:23:21 AM12/6/18
to abhiy...@gmail.com, fenics-support
Hi,

No, that is the missing functionality referred to in my original reply. There is currently no workaround.

Jack

ryandm...@gmail.com

unread,
Jan 22, 2019, 11:04:07 AM1/22/19
to fenics-support
Hey Jack,

Do you have an idea when quad/hex meshes will be implemented for meshes other than unit squares/cubes?

Thanks


On Thursday, 15 November 2018 20:43:30 UTC, Jack Hale wrote:

Jack Hale

unread,
Jan 22, 2019, 11:22:33 AM1/22/19
to ryandm...@gmail.com, fenics-support
Well, it's high on the list of to-dos for dolfinx. I cannot make a concrete commitment for when it will be done, it depends on community contributions e.g. Google Summer of Code.

Jack

Reply all
Reply to author
Forward
0 new messages