Main Content

Minimal Surface Problem

This example shows how to solve the minimal surface equation

- ( 1 1 + | u | 2 u ) = 0

on the unit disk Ω = { ( x , y ) | x 2 + y 2 1 } , with u ( x , y ) = x 2 on the boundary Ω . An elliptic equation in the toolbox form is

- ( c u ) + au = f .

Therefore, for the minimal surface problem, the coefficients are as follows:

c = 1 1 + | u | 2 , a = 0 , f = 0 .

Because the coefficientcis a function of the solutionu, the minimal surface problem is a nonlinear elliptic problem.

To solve the minimal surface problem using the programmatic workflow, first create a PDE model with a single dependent variable.

model = createpde;

Create the geometry and include it in the model. Thecirclegfunction represents this geometry.

geometryFromEdges(model,@circleg);

Plot the geometry with the edge labels.

pdegplot(model,'EdgeLabels','on'); axisequaltitle'Geometry with Edge Labels';

Figure contains an axes object. The axes object with title Geometry with Edge Labels contains 5 objects of type line, text.

Specify the coefficients.

a = 0; f = 0; cCoef = @(region,state) 1./sqrt(1+state.ux.^2 + state.uy.^2); specifyCoefficients(model,'m',0,'d',0,'c',cCoef,'a',a,'f',f);

Specify the boundary conditions using the function u ( x , y ) = x 2 .

bcMatrix = @(region,~)region.x.^2; applyBoundaryCondition(model,'dirichlet',...'Edge',1:model.Geometry.NumEdges,...'u',bcMatrix);

Generate and plot a mesh.

generateMesh(model,'Hmax',0.1); figure; pdemesh(model); axisequal

Figure contains an axes object. The axes object contains 2 objects of type line.

Solve the problem by using thesolvepdefunction. Because the problem is nonlinear,solvepdeinvokes a nonlinear solver. Observe the solver progress by setting theSolverOptions.ReportStatisticsproperty of the model to'on'.

model.SolverOptions.ReportStatistics ='on'; result = solvepde(model);
Iteration Residual Step size Jacobian: Full 0 1.8540e-02 1 2.8715e-04 1.0000000 2 1.2144e-06 1.0000000
u = result.NodalSolution;

Plot the solution.

figure; pdeplot(model,'XYData',u,'ZData',u); xlabel'x'ylabel'y'zlabel'u(x,y)'title'Minimal Surface'

Figure contains an axes object. The axes object with title Minimal Surface contains an object of type patch.