Given disjoint surfaces $q_i$ in 3D and their 1D boundary curves $\partial q_i = \gamma_i$, I seek a surface $p$ that joins the $q_i$, where $p \cup q_i$ forms a (piecewise) $C^k$ surface that minimizes some energy functional.
For $k = 0$, this reduces to Plateau's problem and one only needs the $\gamma_i$. There are fantastic answers to this problem here.
For example let my surfaces $q_i$ be the following open tubes:
n = 20;
mr = MeshRegion[
Join[
Append[-1.0] /@ CirclePoints[.25, n],
Append[-0.5] /@ CirclePoints[.25, n]
],
{
Polygon[Range[n]],
Polygon[Partition[Flatten[Riffle[Partition[Range[n], 2, 1, 1], Range[n] + n]], 3]],
Polygon[Partition[Flatten[Riffle[Partition[Range[n] + n, 2, 1, 1], RotateLeft[Range[n]]]], 3]]
}
];
mr = DiscretizeRegion[
Region`Mesh`MeshRegionJoin[mr,
TransformedRegion[mr, RotationTransform[Pi/2, {0, -1, 0}]]],
PlotTheme -> "Default"]
Let's connect them with some (open) surface:
bd = MeshRegion[MeshCoordinates[mr], Region`InternalBoundaryEdges[mr]];
conv = RegionBoundary[ConvexHullMesh[MeshCoordinates[bd]]];
dfs = RegionDistance[InfinitePlane[MeshCoordinates[#][[1 ;; 3]]]] & /@ ConnectedMeshComponents[bd];
centroids = PropertyValue[{conv, 2}, MeshCellCentroid];
joint = MeshRegion[
MeshCoordinates[conv],
Pick[MeshCells[conv, 2],
Thread[Greater[Min /@ Transpose[Through[dfs[centroids]]], 10^-12.]]]
];
joint = DiscretizeRegion[joint, MaxCellMeasure -> {2 -> .001}]
We can use areaGradientDescent to modify the joint, leading to a $C^0$ solution through gradient flow:
Show[
MeshRegion[mr, MeshCellStyle -> {0 -> None, 1 -> None, 2 -> GrayLevel[.8]}],
areaGradientDescent[joint, 1, 1]
]
I seek to find stationary surfaces of higher order Laplacian flows
$$ \frac{\partial p}{\partial t} = \Delta^{k+1}_M p. $$
For example, some higher order results will look like the following (source):

How can I incorporate the appropriate boundary conditions into a method such as areaGradientDescent to achieve a $C^k$ result?


