({{, (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[chart,property]
gives the value of the specified property for chart.}, {, (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[chart,property,{(Subscript[x, 1]),(Subscript[x, 2]),…,(Subscript[x, n])}]
gives the value of the specified property for chart evaluated at the point {(Subscript[x, 1]),(Subscript[x, 2]),…,(Subscript[x, n])}.}})

OpenersNotesSection(Spacer1)Details

A coordinate chart may be specified by a coordinate system name, by a pair {coordsys,dim}, or by a standard name of the form {coordsys,metric,dim}. The dimension dim is a positive integer. Pairs {coordsys,dim} are interpreted as referring to the Euclidean metric.

Valid metric specifications include:

Valid coordinate system specifications include:

If an evaluation point {(Subscript[x, 1]),(Subscript[x, 2]),…,(Subscript[x, n])} is given, the dimension n may be omitted from the coordinate chart name in the first argument.

Any or all of the elements of the triple in {coordsys,metric,dim} can be replaced with the symbol (RefLink[All, paclet:ref/All]). In this case, (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[chart,property] will return a list of values for the coordinate charts that match the specified elements.

(RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[] gives a list of available coordinate charts, including only low-dimensional members of infinite families.

(RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[chart] is equivalent to (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[chart,"StandardName"].

(RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])["Properties"] returns a list of available properties.

When no evaluation point {(Subscript[x, 1]),(Subscript[x, 2]),…,(Subscript[x, n])} is specified, properties are typically pure functions expecting a list of length n.

Basic properties include:

Metric-related properties include:

In Euclidean coordinate charts {coordsys,"Euclidean",n} with integer n, valid coordsys values include:

In two-dimensional Euclidean coordinate charts {coordsys,"Euclidean",2}, valid coordsys values include:

In three-dimensional Euclidean coordinate charts {coordsys,"Euclidean",3}, valid coordsys values include:

In coordinate charts {coordsys,"Sphere",n} on the n-sphere, valid coordsys values include:

OpenersPrimaryExamplesSection(Spacer1)Examples  (26)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

Three-dimensional spherical coordinates:

CoordinateChartData["Spherical", "Metric",{r,θ,φ}]

CoordinateChartData["Spherical", "ScaleFactors",{r,θ,φ}]

OpenersExampleSection1(Spacer1)Scope  (22)

OpenersExampleSubsection0(Spacer1)Names  (7)

(RefLink[CoordinateChartData, paclet:ref/CoordinateChartData])[] returns a list of available charts, including only low-dimensional members of infinite families:

CoordinateChartData[]//Length

Pairs {coordsys,dim} are equivalent to {coordsys,"Euclidean",dim}:

CoordinateChartData[{ "Polar", 2}]

CoordinateChartData[{ "Confocal", 2}]

When an evaluation point is given, the dimension may be omitted from the first argument:

CoordinateChartData["Polar", "StandardName", {r,θ}]

CoordinateChartData[{{"Confocal", {a,b}}}, "StandardName", {μ,λ}]

CoordinateChartData[{ "Standard","Sphere"}, "StandardName", {r,θ}]

Some special coordinate charts for the Euclidean metric can be entered using only the coordinate system name:

CoordinateChartData["Polar"]

List all known three-dimensional coordinate systems in flat space:

CoordinateChartData[{ All,"Euclidean", 3}]

Pairs {chart,dim} are equivalent to {chart,"Euclidean",dim}:

CoordinateChartData[{ All, 3}]

All available two-dimensional coordinate systems:

CoordinateChartData[{All,All,2}]

For infinite families, low-dimensional representatives are returned:

CoordinateChartData[{"Confocal", All}]

Specifying parameters may restrict relevant dimensions:

CoordinateChartData[{{"Confocal", {a,b}}, All}]

If no charts match, an empty list is returned:

CoordinateChartData[{{"Confocal", a}, All}]

OpenersExampleSubsection1(Spacer1)Properties  (2)

Get a list of possible properties:

CoordinateChartData["Properties"]

Length[%]

Give the scale factors for a single chart:

CoordinateChartData[{"Polar",2}, "ScaleFactors",{r,θ}]

Retrieve all two-dimensional coordinate systems in flat space:

CoordinateChartData[{All,"Euclidean",2}]

Give the corresponding scale factors:

CoordinateChartData[{All,"Euclidean",2}, "ScaleFactors",{u,v}]

OpenersExampleSubsection2(Spacer1)Property Values  (2)

A property value can be any valid Wolfram Language expression:

CoordinateChartData["Cylindrical", "Dimension"]

CoordinateChartData["Polar", "ScaleFactors",{r,θ}]

CoordinateChartData[{"ProlateSpheroidal", 3}, "CoordinateRangeAssumptions",{ξ,η,ϕ}]

For most properties, if no evaluation point is given, then (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData]) will return a pure function:

prop = CoordinateChartData[{"ProlateSpheroidal","Euclidean",3}, "Metric"]

This function can be applied to points:

prop[{u,v,w}]

prop[{2,π/4,0}]

Certain descriptive properties, which manifestly do not depend on the variables, never return a pure function as a property value:

CoordinateChartData[{"ProlateSpheroidal","Euclidean",3}, "StandardName"]

CoordinateChartData[{"ProlateSpheroidal","Euclidean",3}, "ParameterRangeAssumptions"]

The properties for which this happens include "Dimension", "ParameterRangeAssumptions", "StandardName", "StandardCoordinateNames", and "AlternateCoordinateNames".

OpenersExampleSubsection3(Spacer1)Detailed Properties  (11)

OpenersExampleSubsubsection0(Spacer1)Basic Properties  (7)

In general, coordinate charts are referred to by standard name:

CoordinateChartData[{"Confocal", 2}, "StandardName"]

That is equivalent to this simpler syntax:

CoordinateChartData[{"Confocal", 2}]

Look up the coordinate chart dimension without doing pattern matching on the chart name:

CoordinateChartData["Spherical", "Dimension"]

CoordinateChartData[{"Polar","Euclidean",2}, "Dimension"]

Give assumptions for the range of polar coordinates:

CoordinateChartData[{"Polar","Euclidean",2}, "CoordinateRangeAssumptions",{r,θ}]

Assumptions are returned in a form usable by (RefLink[Simplify, paclet:ref/Simplify]) and other functions that accept (RefLink[Assumptions, paclet:ref/Assumptions]):

Simplify[r^2 / Sqrt[r^2], Assumptions->CoordinateChartData[{"Polar","Euclidean",2}, "CoordinateRangeAssumptions",{r,θ}]]

Use "CoordinateRangeAssumptions" without specifying a point to create a test for point validity:

test = CoordinateChartData[{"Spherical",3}, "CoordinateRangeAssumptions"]

This is a valid point in spherical coordinates:

test[{3, π/2, 0}]

These are not valid points in spherical coordinates:

test[{-3, π/2, 0}]

test[{3, 3π/2, 0}]

Give the assumptions for the parameter in prolate spheroidal coordinates:

CoordinateChartData[{"ProlateSpheroidal",3},"ParameterRangeAssumptions"]

Test that a particular value of the parameter is valid:

CoordinateChartData[{{"ProlateSpheroidal",1},3},"ParameterRangeAssumptions"]

A message is issued and (RefLink[CoordinateChartData, paclet:ref/CoordinateChartData]) returns unevaluated if a value of the parameter violating the assumptions is used:

CoordinateChartData[{{"ProlateSpheroidal",-1},3},"ParameterRangeAssumptions"]

Look up the standard coordinate names used in spherical coordinates:

CoordinateChartData[{"Spherical",3}, "StandardCoordinateNames"]

The names are given as strings:

%//InputForm

Use (RefLink[ToExpression, paclet:ref/ToExpression]) to convert them to symbols:

ToExpression /@ % //InputForm

Look up common alternate coordinate names used in spherical coordinates:

CoordinateChartData[{"Spherical",3}, "AlternateCoordinateNames"]

The names are strings:

%//InputForm

Use (RefLink[ToExpression, paclet:ref/ToExpression]) to convert them to symbols:

Map[ToExpression, %,{2}] //InputForm

OpenersExampleSubsubsection1(Spacer1)Metric-Related Properties  (4)

Give the components of the (covariant) metric as a matrix:

CoordinateChartData[{"Cylindrical",3},"Metric"][{r,θ,z}]

By particularizing to a curve, the metric can be used to compute the differential arc length:

metric[t_]=CoordinateChartData[{"Cylindrical",3},"Metric"][{r[t],θ[t],z[t]}]

curve[t_] = {r[t], θ[t], z[t]}

curve'[t] . metric[t].curve'[t]

Give the components of the inverse (contravariant) metric as a matrix:

CoordinateChartData[{"ProlateSpheroidal",3},"InverseMetric",{r,u,v}]

The inverse metric with a particular value of the parameter \[FormalA]:

CoordinateChartData[{{"ProlateSpheroidal",1},3},"InverseMetric",{r,u,v}]

Give the scale factors as a flat list:

scale=CoordinateChartData[{"PlanarParabolic",2},"ScaleFactors",{μ,λ}]

In an orthogonal coordinate system, the scale factors relate the scalar gradient to partial differentiation:

D[f[μ,λ], {{μ,λ}}]/scale ==  Grad[f[μ,λ], {μ,λ},"PlanarParabolic"]

Give the coefficient of the differential in spherical coordinates:

V=CoordinateChartData[{"Spherical",3},"VolumeFactor",{r,θ, φ}]

Find the volume of a region:

(∫_0^R)(∫_0^π)(∫_0^(2π))V \[DifferentialD]φ\[DifferentialD]θ\[DifferentialD]r

The volume is an n-dimensional volume. For example, in two dimensions it corresponds to area:

V=CoordinateChartData[{"Polar",2},"VolumeFactor",{r,θ}]

(∫_0^R)(∫_0^(2π))V \[DifferentialD]θ\[DifferentialD]r

OpenersExampleSection3(Spacer1)Applications  (1)

A function to compute the differential arc length of a curve in a particular coordinate system:

ds[curve_List,t_,chart_] := Module[{metric, tangent},
metric = CoordinateChartData[chart, "Metric", curve];
tangent = D[curve,t];
Sqrt[tangent . metric . tangent] \[DifferentialD]t
]

The differential arc length of a general curve in polar coordinates:

ds[{r[t],θ[t]},t, "Polar"]

The differential arc length of a helix expressed in cylindrical coordinates:

ds[{R, u, u}, u,{"Cylindrical",3}]

This can now be integrated:

(∫_0^(2π))(Sqrt[1+(R^2)]) \[DifferentialD]u

OpenersExampleSection4(Spacer1)Properties & Relations  (1)

(RefLink[CoordinateChartData, paclet:ref/CoordinateChartData]) checks that inputs obey the coordinate range assumptions of charts:

CoordinateChartData["Spherical","Metric",{2,0,0}]

Extract the general formula using the two-argument form and apply it to extend to singular points:

CoordinateChartData["Spherical","VolumeFactor"][{2,0,0}]

OpenersExampleSection5(Spacer1)Interactive Examples  (1)

Create an interactive table of Laplacian expressions in two-dimensional coordinate systems:

Manipulate[With[{vars=ToExpression/@CoordinateChartData[{Coordinates,2},"StandardCoordinateNames"]},Simplify@Laplacian[f@@vars,vars,{Coordinates,"Euclidean"}]],{Coordinates,First/@CoordinateChartData[{All,2}]},FrameLabel->"Laplacian in Two Dimensions"]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[CoordinateTransformData, paclet:ref/CoordinateTransformData])  ▪  (RefLink[Grad, paclet:ref/Grad])  ▪  (RefLink[Div, paclet:ref/Div])  ▪  (RefLink[Curl, paclet:ref/Curl])  ▪  (RefLink[Laplacian, paclet:ref/Laplacian])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Vector Analysis, paclet:tutorial/VectorAnalysis])}, {▪(RefLinkPlain[Changing Coordinate Systems, paclet:tutorial/ChangingCoordinateSystems])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Vector Analysis, paclet:guide/VectorAnalysis])}, {▪(RefLinkPlain[Calculus, paclet:guide/Calculus])}})}})