Critical MeshView updates for Legacy DOLFIN

For those of you using the MeshView-capabilities and/or mixed-dimensional features introduced in DOI:10.1145/3471138 there has been some major fixes over the last few months, and everyone is recommended to update to the latest version, available at:
Docker: ghcr.io/scientificcomputing/fenics:2024-02-19
which ships both AMD and ARM images (compatible with MAC).
GMSH image at: ghcr.io/scientificcomputing/fenics-gmsh:2024-02-19
Source code: Bitbucket

These changes include the following fixes and API changes:
Bug-fixes

  • Mesh-creation in parallel, where a process does not have any owned cells.
  • Bounding-box-tree construction for processes with no owned cells (called by assemble_mixed).
  • Fix issue for codim-1 in Function.restrict. This applies to all code using codim-1 entities in MeshViews.
  • Fixes for assembly of mesh-view’s with coefficients from views stemming from the same parent mesh.
  • Previous assembly of any form with coefficients (that is dolfin.Function) should be re-ran.

API changes:

  • Instead of using MeshView.create(mesh_function ,value) use dolfin.create_meshview(mesh_function, value). This is in particular important when using co-dimension 1 mesh-views in parallel.
  • Any integral involving MeshView’s should use assemble_mixed. If this is not used, the hierarchy will not be exploited, which can result in slow execution and wrong results in parallel.

Various tests have been added to cover these fixes.

We thank @emmetfrancis, Pietro Benedusi and @IngeborgGjerde for their valuable bug-reports.

Best,
Jørgen S. Dokken (@dokken) and Cécile Daversin-Catty (@cdaversin)

[DOI:10.1145/3471138] Cécile Daversin-Catty, Chris N. Richardson, Ada J. Ellingsrud, and Marie E. Rognes. 2021. Abstractions and Automated Algorithms for Mixed Domain Finite Element Methods. ACM Trans. Math. Softw. 47, 4

1 Like