minimal_surface

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Applications > Misc >

minimal_surface

Previous pageReturn to chapter overviewNext page

{ MINIMUM_SURFACE.PDE  

 

 This example shows the application of FlexPDE to the non-linear problem

 of surface tension or "minimal surface".

 

 The surface area of an infinitesimal rectangular patch of an arbitrary

 surface

       U = U(x,y)

 

 is (by the Pythagorean theorem)

       dA = dx*dy*sqrt[1 + (dU/dx)^2 + (dU/dy)^2],

 where dx and dy are the projections of the patch in the X-Y plane.

 

 The total surface area of a function U(x,y) over a domain is then

       A = integral(dx*dy*sqrt[1 + dx(U)^2 + dy(U)^2])

 

 For the function U to have minimal surface area, it must satisfy the

 Euler equation

       dx(dF/dUx) + dy(dF/dUy) - dF/dU = 0

 where

       F = sqrt[1 + (dU/dx)^2 + (dU/dy)^2]

       dF/dUx = (dU/dx)/F

       dF/dUy = (dU/dy)/F

       dF/dU  = 0

 

 The equation for the minimizing surface is therefore (in FlexPDE notation):

       dx((1/F)*dx(U)) + dy((1/F)*dy(U)) = 0

 

 This is analogous to a heatflow problem

       div(K*grad(T)) = 0

 where the conductivity has the value

       K = 1/F

 

 This is a highly nonlinear problem, in that the conductivity, K, becomes

 small in regions of high gradient, which tends to increase the gradient

 even more.

 

 In the present example, we stretch a

 soap-bubble across a square bent wire

 frame, in which the first quadrant of

 the boundary has been bent inward

 and raised up.

}  

title "MINIMAL SURFACE"  

 

variables  

   u  

 

definitions  

   size = 6  

   a  

   pressure = 0  

   r = sqrt(x^2+y^2)  

 

equations  

   u : div(a*grad(u)) + pressure = 0  

 

boundaries  

  region 1  

     a = 1/sqrt(1+grad(u)^2)  

    start(-size,-size)

      value(u)=0         line to (size ,-size) to (size,0)  

      value(u) = size-r   line to (size/2,0)  

      value(u) = size/2   arc(center=size/2,size/2) angle -90  

      value(u) = size-r   line to (0,size)  

      value(u) = 0       line to (-size,size)  

      to close  

 

monitors  

  contour(u)  

 

plots  

  grid(x,y)  

  contour(u)  

  surface(u)  

 

end