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:
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
While adding the
elastic-tube-3d/solid-fenicscase to the system tests, I noticed that the results comparison with fieldcompare was orders of magnitude slower than for theelastic-tube-3d/solid-calculixcase, even though the exported mesh has fewer points. Paraview reports:solid-calculix: 3190 cells, 2588 pointssolid-fenics: 3281 cells, 1126 pointsLoading the exported meshes in Paraview, I get the
solid-calculixmesh rendering as a surface with clear inlet and outlet boundaries, and thesolid-fenicsmesh rendering as a wireframe:I wonder if this means that
At the same time, fieldcompare takes significantly longer:
solid-calculix: 6s for four time windowssolid-fenics: 273s (45x) for two time windowsIf 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 SKIPPEDelastic-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 SKIPPEDAnalyzing the mesh with meshio:
I get:
while the equivalent file for CalculiX gives:
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