Hi @rudolf.neumerkel - it’s a good question with a simple answer:

**Give the edges along the symmetry seam 0.5 times the strength of the internal edges.**

Then simulating a fraction of it and mirroring gives you exactly the same result as simulating the whole thing.

simulation_mirror.gh (31.5 KB)

If you think about it, when mirroring, the edges right on the symmetry plane are effectively getting counted twice in the simulation, so without adjustment they are too strong relative to the other surrounding edges, giving that kink you saw. Halving their strength exactly counteracts this.

I’ve used the same approach to model periodic minimal surfaces with translation or reflection symmetry

Pressure is triangle based, and all triangles are unambiguously on one side or the other of the symmetry plane, so no need to do anything different there.

(as a separate issue though - you may want to triangulate your mesh using WbStellate, to avoid introducing any diagonal bias, since all quads get triangulated for pressure, and the default triangulation could introduce a bias)

It’s not really correct what @diff-arch says, sorry.

You *can* use the pressure goal to simulate a pressurized closed shape without actually modelling the whole shape.

Here you are setting the pressure, but if instead you were setting the volume, you could still use the symmetry, you’d just need to make sure the intersection of the symmetry planes went through the origin.

The SoapFilm goal is triangle based, so can also be mirrored without adjustment.

Other goals which act on different sets of points need slightly different treatment though.

For instance Smooth and TangentialSmooth act on a vertex and its neighbours, so you’d need to consider the case where the neighbours are on the other side of the symmetry plane.

Similarly with the Hinge goal, you need to consider the case where the hinge is actually on the symmetry plane.

For these you sometimes need to include one row of vertices beyond the part you are mirroring, then use the Transform goal to lock them to their matching vertex on the other side.