For completeness, here is a set of test cases which I think demonstrates the full behaviour:
- test.zip
- Set of test cases for different gmsh versions
- (3.19 KiB) Downloaded 64 times
A quick summary, the physical setup is that there is a disk inside an annulus where the inner boundary of the annulus exactly matches the boundary of the disk. The sif file attaches an outwards force on the external boundary of the annulus, which should pull it away from the disk. The correct solution is a stretched annulus which doesn't touch the disk.
I have included three geometry files which always define three named boundaries: the boundary of the disk, the outer boundary of the annulus (where the force is applied), and "other". The three files each define "other" differently:
Case 1 - "other" is equal to the boundary of the disk (contact boundaries have different names but the same id in gmsh)
Case 2 - "other" is the full boundary of the annulus (contact boundaries have different id's, but "other" also contains the outer boundary of the annulus)
Case 3 - "other" is just a deep copy of the boundary of the disk (all boundaries have unique names and disjoint id's)
The behaviour of the output simulation depends on both the format version of the .msh file and the contents of the .geo file:
- with version 2, ElmerGrid always copies all three names to mesh.names without raises an error or warning, but the solver gives the wrong output in Case 1 where the contact boundaries are unable to separate. Cases 2 and 3 give the correct output.
- with version 3, ElmerGrid always fails with a seg fault and a message that version 3 is not supported
- with version 4, ElmerGrid only preserves the three names in Case 3, where the simulation is correct. ElmerGrid ignores one of the names in Cases 1 and 2, the simulations are completed without errors or warnings but give meaningless results (because the id numbers referenced in the sif file no longer reference the correct physical groups)
Overall, using ElmerGrid with version 2 gives the user the benefit of the doubt whereas with version 4 it assumes the worst and requires unique id's for each name.
Hopefully someone will find this characterisation useful in the future.