Skip to content

elastic-tube-3d/solid-fenics preCICE mesh only includes line elements #853

Description

@MakisH

While adding the elastic-tube-3d/solid-fenics case to the system tests, I noticed that the results comparison with fieldcompare was orders of magnitude slower than for the elastic-tube-3d/solid-calculix case, even though the exported mesh has fewer points. Paraview reports:

  • solid-calculix: 3190 cells, 2588 points
  • solid-fenics: 3281 cells, 1126 points

Loading the exported meshes in Paraview, I get the solid-calculix mesh rendering as a surface with clear inlet and outlet boundaries, and the solid-fenics mesh rendering as a wireframe:

Image

I wonder if this means that

At the same time, fieldcompare takes significantly longer:

  • solid-calculix: 6s for four time windows
  • solid-fenics: 273s (45x) for two time windows

If I understand correctly, the points end up in a different order than in the reference (i.e., depends on the run):

elastic-tube-3d_fluid-openfoam_solid-calculix:

  field-compare-1  | Comparing '/runs/elastic-tube-3d_fluid-openfoam-solid-calculix_2026-06-29-172120/precice-exports/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |       and '/runs/elastic-tube-3d_fluid-openfoam-solid-calculix_2026-06-29-172120/reference-results-unpacked/fluid-openfoam_solid-calculix/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |   Reading '/runs/elastic-tube-3d_fluid-openfoam-solid-calculix_2026-06-29-172120/precice-exports/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |   Reading '/runs/elastic-tube-3d_fluid-openfoam-solid-calculix_2026-06-29-172120/reference-results-unpacked/fluid-openfoam_solid-calculix/Solid-Mesh-Solid.init.vtu'
+ field-compare-1  |   Meshes did not compare equal (Differing connectivity detected for cell of type 'LINE'). Retrying with sorted points...
  field-compare-1  |   Meshes did not compare equal (Differing connectivity detected for cell of type 'LINE'). Retrying with sorted cells...
  field-compare-1  |   Wrote diff into '/runs/elastic-tube-3d_fluid-openfoam-solid-calculix_2026-06-29-172120/precice-exports/diff_Solid-Mesh-Solid.init.vtu.vtu'
  field-compare-1  |   File comparison PASSED with 3 PASSED / 0 FAILED / 0 SKIPPED

elastic-tube-3d_fluid-openfoam_solid-fenics:

  field-compare-1  | Comparing '/runs/elastic-tube-3d_fluid-openfoam-solid-fenics_2026-06-29-172244/precice-exports/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |       and '/runs/elastic-tube-3d_fluid-openfoam-solid-fenics_2026-06-29-172244/reference-results-unpacked/fluid-openfoam_solid-fenics/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |   Reading '/runs/elastic-tube-3d_fluid-openfoam-solid-fenics_2026-06-29-172244/precice-exports/Solid-Mesh-Solid.init.vtu'
  field-compare-1  |   Reading '/runs/elastic-tube-3d_fluid-openfoam-solid-fenics_2026-06-29-172244/reference-results-unpacked/fluid-openfoam_solid-fenics/Solid-Mesh-Solid.init.vtu'
+ field-compare-1  |   Meshes did not compare equal (Differing points - 'Deviation above tolerance detected -> [ 0.00160798 -0.00471205  0.037189  ] vs. [-0.0031449   0.00385612  0.00938227] ([ 295.58 -181.84   74.77] %)'). Retrying with sorted points...
  field-compare-1  |   Meshes did not compare equal (Differing connectivity detected for cell of type 'LINE'). Retrying with sorted cells...
  field-compare-1  |   Wrote diff into '/runs/elastic-tube-3d_fluid-openfoam-solid-fenics_2026-06-29-172244/precice-exports/diff_Solid-Mesh-Solid.init.vtu.vtu'
  field-compare-1  |   File comparison PASSED with 3 PASSED / 0 FAILED / 0 SKIPPED

Analyzing the mesh with meshio:

import meshio
m=meshio.read('Solid-Mesh-Solid.dt1.vtu')
print([(c.type, len(c.data), c.data.shape) for c in m.cells])

I get:

[('line', 3281, (3281, 2))]

while the equivalent file for CalculiX gives:

[('triangle', 1264, (1264, 3)), ('line', 1926, (1926, 2))]

Meshes: meshes.tar.gz

For all other FEniCS-based cases, fieldcompare processes the files similarly fast as all other cases. There seems to be something special about this case.

The case was added by @IshaanDesai (#222), who might have a lead on what is going on here.

Using the tutorials from https://github.com/precice/tutorials/tree/f7c0e34ade4545d1a67b9c831d1db509877fdb94

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions