Function Repository Resource:

BrioschiCurvature

Source Notebook

Compute the Gaussian curvature for a metric

Contributed by: Wolfram Staff (original content by Alfred Gray)

ResourceFunction["BrioschiCurvature"][m,{u,v}]

computes the Gaussian curvature for a metric m with respect to variables u and v from the Brioschi formula.

ResourceFunction["BrioschiCurvature"][{fx,fy,fz},{u,v}]

computes the Gaussian curvature for a parametrization with respect to variables u and v.

ResourceFunction["BrioschiCurvature"][e,f,g,{u,v}]

computes the Gaussian curvature from the first fundamental form coefficients e,f and g.

Details

The metric m is limited to a 2×2 matrix, being square and symmetric.
The Brioschi formula gives Gaussian curvature solely in terms of the first fundamental form.
The explicit form of the formula was worked out by Francesco Brioschi (1852).

Examples

Basic Examples (2) 

Compute the Gaussian curvature of a sphere using the Brioschi formula:

In[1]:=
Simplify[ResourceFunction[
  "BrioschiCurvature"][{Sin[u] Cos[v], Sin[u] Sin[v], Cos[u]}, {u, v}]]
Out[1]=

Define a funnel:

The covariant basis:

In[2]:=
{Subscript[g, \[Alpha]], Subscript[g, \[Beta]]} = Transpose@(D[funnel[a, b, c][u, v], {{u, v}}])
Out[2]=

The metric tensor:

In[3]:=
Subscript[g, \[Alpha]\[Beta]] = SymmetrizedArray[{{1, 1} -> Subscript[g, \[Alpha]].Subscript[g, \[Alpha]], {1, 2} -> Subscript[g, \[Alpha]].Subscript[g, \[Beta]], {2, 2} -> Subscript[g, \[Beta]].Subscript[g, \[Beta]]}, {2, 2}, Symmetric[{1, 2}]] // Simplify
Out[3]=

Compute the Brioschi curvature:

In[4]:=
ResourceFunction["BrioschiCurvature"][Subscript[
  g, \[Alpha]\[Beta]], {u, v}] // FullSimplify
Out[4]=

Properties and Relations (3) 

The Brioschi formula may be slower than computing the Gaussian curvature directly:

In[5]:=
ResourceFunction[
   "BrioschiCurvature"][{a v Cos[u], b v Sin[u], c Log[v]}, {u, v}] //
   FullSimplify // Timing
Out[5]=
In[6]:=
ResourceFunction["GaussianCurvature"][{a v Cos[u], b v Sin[u], c Log[v]}, {u, v}] // FullSimplify // Timing
Out[6]=

Apply the Brioschi formula for a parametrized surface:

In[7]:=
ResourceFunction[
  "BrioschiCurvature"][{a v Cos[u], b v Sin[u], c Log[v]}, {u, v}] // FullSimplify
Out[7]=

Apply using the first fundamental form coefficients:

In[8]:=
ResourceFunction["FirstFundamentalFormCoefficients"][{a v Cos[u], b v Sin[u], c Log[v]}, {u, v}]
Out[8]=
In[9]:=
ResourceFunction[
    "BrioschiCurvature"][##, {u, v}] & @@ % // FullSimplify
Out[9]=

The covariant basis of a surface:

In[10]:=
{Subscript[g, \[Alpha]], Subscript[g, \[Beta]]} = Transpose@(D[{u, v, u^3 - 3 u v^2}, {{u, v}}])
Out[10]=

The metric tensor:

In[11]:=
Subscript[g, \[Alpha]\[Beta]] = SymmetrizedArray[{{1, 1} -> Subscript[g, \[Alpha]].Subscript[g, \[Alpha]], {1, 2} -> Subscript[g, \[Alpha]].Subscript[g, \[Beta]], {2, 2} -> Subscript[g, \[Beta]].Subscript[g, \[Beta]]}, {2, 2}, Symmetric[{1, 2}]] // Simplify
Out[11]=

Compute the scalar curvature:

In[12]:=
ResourceFunctions["RicciScalar"][Subscript[
  g, \[Alpha]\[Beta]], {u, v}] // FullSimplify
Out[12]=

This coincides with twice the Gaussian curvature:

In[13]:=
% - 2 ResourceFunction["BrioschiCurvature"][Subscript[
    g, \[Alpha]\[Beta]], {u, v}] // FullSimplify
Out[13]=

Publisher

Enrique Zeleny

Version History

  • 1.0.0 – 16 March 2021

Source Metadata

Related Resources

License Information