function [ U, Ux, Uy, Uxx, Uxy, Uyy ] = ...
  minimal_surface_linear_exact ( X, Y, a, b, c )

%*****************************************************************************80
%
%% minimal_surface_linear_exact() evaluates linear minimal surface solution U(X,Y).
%
%  Discussion:
%
%    The minimal surface equation describes a function with zero mean curvature.
%
%    The equation is:
%      (1+Ux^2) Uyy - 2 Ux Uy Uxy + (1+Uy^2) Uxx = 0
%
%    The linear solution is:
%      U(X,Y) = a * X + b * Y + C
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    29 May 2025
%
%  Author:
%
%    John Burkardt
%
%  Reference:
%
%    John D Cook,
%    Closed-form minimal surface solutions,
%    https://www.johndcook.com/blog/2025/03/31/minimal-surface-solutions/
%    Posted 31 March 2025.
%
%  Input:
%
%    real X, Y: the coordinates of the points.
%
%    real a, b, c: parameters.
%
%  Output:
%
%    real U, Ux, Uy, Uxx, Uxy, Uyy: the solution and first and second
%    partial derivatives evaluated at the points (X,Y).
%
  U = a * X + b * Y + c;
  [ m, n ] = size ( U );
  Ux = a * ones ( m, n );
  Uy = b * ones ( m, n );
  Uxx = zeros ( m, n );
  Uxy = zeros ( m, n );
  Uyy = zeros ( m, n );

  return
end
