Function Repository Resource:

RicciTensor

Source Notebook

Represent the Ricci curvature tensor (field) for a Riemannian or pseudo-Riemannian manifold

Contributed by: Jonathan Gorard

ResourceFunction["RicciTensor"][MetricTensor[],i1,i2]

represents the Ricci curvature tensor associated to the given MetricTensor, with indices i1 and i2 (with True representing a covariant index and False representing a contravariant one).

ResourceFunction["RicciTensor"][tensor]

represents the Ricci curvature with covariant indices.

ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],coords]

transforms a specified ResourceFunction["RicciTensor"] into the new coordinate system coords.

ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],i1,i2]

transforms a specified ResourceFunction["RicciTensor"] into one with new indices i1 and i2 (with True representing a covariant index and False representing a contravariant one), raising and lowering existing indices as necessary.

ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],coords,i1,i2]

transforms a specified ResourceFunction["RicciTensor"] into one with new coordinate system coords and new indices i1 and i2 (with True representing a covariant index and False representing a contravariant one), raising and lowering existing indices as necessary.

Details

Formally, the Ricci curvature tensor is a (symmetric) bilinear form defined on the tangent space at a specified point of a manifold, and the Ricci curvature tensor field associates a Ricci curvature tensor to every such point in that manifold. Informally, the Ricci curvature tensor quantifies how the volume of a small geodesic cone (or, in the case of the trace of the Ricci tensor, i.e. the Ricci curvature scalar, the volume of a small geodesic ball) is distorted by the curvature of the manifold, as compared to the volume of the corresponding cone (or ball) in a manifold with zero Riemann curvature.
Strictly speaking, ResourceFunction["RicciTensor"] typically represents a Ricci curvature tensor field rather than a single Ricci curvature tensor (this terminological ambiguity is commonplace in both geometry and physics, and ResourceFunction["RicciTensor"] generally does not make any such distinction).
By default, ResourceFunction["RicciTensor"][MetricTensor[],i1,i2] represents a Ricci curvature tensor by a (symmetric) matrix representation of linear combinations of second (covariant) derivatives of the metric tensor in a given coordinate basis, such that the entries of this matrix transform either covariantly or contravariantly, or some mixture of the two, with respect to transformations of the coordinates. The indices i1 and i2 can either be set to True (covariant) or False (contravariant). By default, both indices are set to True (i.e. all components of the matrix transform covariantly).
In this way, the Ricci curvature tensor in differential geometry may be thought of as being analogous to the Laplacian in analysis, with the full Riemann curvature tensor playing the role of the full matrix of second derivatives. ResourceFunction["RicciTensor"] derives the Ricci curvature tensor from the full Riemann curvature tensor by contracting along the first and third indices.
ResourceFunction["RicciTensor"] does not assume any particular number of dimensions, nor any particular metric convention, for the underlying manifold (although some properties, such as "LorentzianConditions", implicitly assume a (-,+,+,+,) signature). ResourceFunction["RicciTensor"] also does not require the metric to be strictly symmetric (i.e. spin and torsion connections are also supported), although the computation of the Ricci curvature tensor implicitly assumes the torsion-free Levi-Civita connection by default.
ResourceFunction["RicciTensor"] implicitly keeps track of all known algebraic equivalences between tensor expressions, and can apply them for simplification purposes where necessary. Requesting any property with "Reduced" in its name has the effect of applying all known tensor equivalences and simplifying (note that this can have the effect of increasing computation time significantly).
By default, ResourceFunction["RicciTensor"] evaluates all partial derivatives of the metric tensor automatically. In certain cases, however, these partial derivatives may be difficult or even impossible to compute, in which case the evaluation may not terminate in a reasonable time. Requesting any property with "Symbolic" in its name has the effect of leaving all partial derivative operators unevaluated instead (note that this can have the effect of increasing expression length significantly).
If the function succeeds in constructing the specified Ricci curvature tensor, it will return a ResourceFunction["RicciTensor"] expression.
Calling ResourceFunction["RicciTensor"][][i,j] returns the entry in the i-th column and the j-th row of the matrix representation of the Ricci curvature tensor; similarly, ResourceFunction["RicciTensor"][][i,All] and ResourceFunction["RicciTensor"][All,j] return the complete i-th row and the complete j-th column of the matrix representation, respectively.
Calling ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],coords] has the effect of transforming the metric tensor (and hence the Ricci curvature tensor) to the new coordinate system coords. Calling ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],i1,i2] has the effect of raising and lowering appropriate indices of the Ricci curvature tensor to match i1 and i2 (with True representing lowered/covariant and False representing raised/contravariant). Calling ResourceFunction["RicciTensor"][ResourceFunction["RicciTensor"][],coords,i1,i2] has the effect of performing both transformations simultaneously.
By default, ResourceFunction["RicciTensor"] keeps track of the positions of all indices and performs all raising and lowering operations automatically, as required for a given computation.
Based on the eigenvalues of the matrix representation of the underlying metric tensor in covariant form, the underlying manifold will be classified by ResourceFunction["RicciTensor"] as either Riemannian (either all eigenvalues positive or all eigenvalues negative), pseudo-Riemannian (some eigenvalues positive and some eigenvalues negative), Lorentzian (all eigenvalues positive except for one negative, or all eigenvalues negative except for one positive) or Indeterminate.
The property "RiemannianConditions" returns the conditions necessary to guarantee that the eigenvalues of the matrix representation of the underlying metric tensor are strictly positive; "PseudoRiemannianConditions" returns the conditions necessary to guarantee that the eigenvalues of the matrix representation of the underlying metric tensor are all non-zero; "LorentzianConditions" returns the conditions necessary to guarantee that the eigenvalue correpsonding to the {1,0,0,} eigenvector of the underlying metric tensor (if it exists) is negative, with all other eigenvalues being positive. Note that this is strictly less general than the behavior of properties such as "RiemannianQ" (described in the point above), since it assumes certain features of the metric signature.
In ResourceFunction["RicciTensor"], the following properties are supported:
"MatrixRepresentation"Ricci curvature tensor represented in explicit matrix form
"ReducedMatrixRepresentation"Ricci curvature tensor represented in explicit matrix form, modulo all tensor equivalences
"SymbolicMatrixRepresentation"Ricci curvature tensor represented in explicit matrix form, with purely symbolic partial derivative operators
"RicciScalar"Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor)
"ReducedRicciScalar"Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), modulo all tensor equivalences
"SymbolicRicciScalar"Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with purely symbolic partial derivative operators
"MetricTensor"underlying metric tensor associated to the Ricci curvature tensor
"Coordinates"list of coordinate symbols for the Ricci curvature tensor
"CoordinateOneForms"list of differential 1-form symbols for the coordinates of the Ricci curvature tensor
"Indices"list of booleans specifying whether each index of the Ricci curvature tensor is lowered/covariant (True) or raised/contravariant (False)
"CovariantQ"whether the Ricci curvature tensor is covariant (i.e. both indices are lowered/covariant)
"ContravariantQ"whether the Ricci curvature tensor is contravariant (i.e. both indices are raised/contravariant)
"MixedQ"whether the Ricci curvature tensor is mixed (i.e. one index is lowered/covariant and one index is raised/contravariant)
"Symbol"symbolic representation of the Ricci curvature tensor with appropriately raised/lowered indices
"RicciFlatQ"whether the underlying manifold is Ricci-flat (i.e. all components of the Ricci curvature tensor vanish)
"VanishingRicciScalarQ"whether the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor) vanishes
"RicciFlatConditions"list of conditions required to guarantee that the underlying manifold is Ricci-flat (i.e. all components of the Ricci curvature tensor vanish)
"VanishingRicciScalarConditions"list of conditions required to guarantee that the underlying manifold has a vanishing Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor vanishes)
"CovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor
"ReducedCovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor, modulo all tensor equivalences
"SymbolicCovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor, with purely symbolic partial derivative operators
"BianchiIdentities"list of (contracted) Bianchi identities relating the covariant derivatives of the Ricci curvature tensor and the Ricci curvature scalar
"SymbolicBianchiIdentities"list of (contracted) Bianchi identities relating the covariant derivatives of the Ricci curvature tensor and the Ricci curvature scalar, with purely symbolic partial derivative operators
"Dimensions"number of dimensions of the underlying manifold/spacetime described by the Ricci curvature tensor
"SymmetricQ"whether the Ricci curvature tensor is symmetric (i.e. is represented by a symmetric matrix in covariant form)
"DiagonalQ"whether the Ricci curvature tensor is diagonal (i.e. is represented by a diagonal matrix in covariant form)
"Signature"list of +1s and -1s designating the signature of the underlying manifold described by the Ricci curvature tensor (+1 for each positive eigenvalue of the metric, -1 for each negative eigenvalue of the metric)
"RiemannianQ"whether the underlying manifold described by the Ricci curvature tensor is Riemannian (i.e. all eigenvalues of the metric have the same sign)
"PseudoRiemannianQ"whether the underlying manifold described by the Ricci curvature tensor is pseudo-Riemannian (i.e. all eigenvalues of the metric are non-zero, but not all have the same sign)
"LorentzianQ"whether the underlying manifold described by the Ricci curvature tensor is Lorentzian (i.e. all eigenvalues of the metric have the same sign, except for one eigenvalue which has the opposite sign)
"RiemannianConditions"list of conditions required to guarantee that the underlying manifold described by the Ricci curvature tensor is Riemannian (i.e. all eigenvalues of the metric are positive)
"PseudoRiemannianConditions"list of conditions required to guarantee that the underlying manifold described by the Ricci curvature tensor is pseudo-Riemannian (i.e. all eigenvalues of the metric are non-zero)
"LorentzianConditions"list of conditions required to guarantee that the underlying manifold described by the Ricci curvature tensor is Lorentzian (i.e. the "time" eigenvalue of the metric is negative and all other eigenvalues are positive)
"CurvatureSingularities"list of possible coordinate values that cause the Ricci curvature tensor to become singular
"ScalarCurvatureSingularities"list of possible coordinate values that cause the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor) to become singular
"Determinant"determinant of the Ricci curvature tensor (represented in covariant matrix form)
"ReducedDeterminant"determinant of the Ricci curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"SymbolicDeterminant"determinant of the Ricci curvature tensor (represented in covariant matrix form), with purely symbolic partial derivative operators
"Eigenvalues"eigenvalues of the Ricci curvature tensor (represented in covariant matrix form)
"ReducedEigenvalues"eigenvalues of the Ricci curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"Eigenvectors"eigenvectors of the Ricci curvature tensor (represented in covariant matrix form)
"ReducedEigenvectors"eigenvectors of the Ricci curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"CovariantRicciTensor"covariant form of the Ricci curvature tensor (i.e. both indices are lowered/covariant)
"ContravariantRicciTensor"contravariant form of the Ricci curvature tensor (i.e. both indices are raised/contravariant)
"ScalarVolumeExpansion"Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ" relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor)
"ReducedScalarVolumeExpansion"Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ" relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), modulo all tensor equivalences
"SymbolicScalarVolumeExpansion"Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ" relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with purely symbolic partial derivative operators
"VolumeFormExpansion"Taylor expansion along a Jacobi field for the metric volume form "dV" relative to the corresponding volume form of the flat/Euclidean metric "d", represented in terms of projections of the Ricci curvature tensor
"ReducedVolumeFormExpansion"Taylor expansion along a Jacobi field for the metric volume form "dV" relative to the corresponding volume form of the flat/Euclidean metric "d", represented in terms of projections of the Ricci curvature tensor, modulo all tensor equivalences
"SymbolicVolumeFormExpansion"Taylor expansion along a Jacobi field for the metric volume form "dV" relative to the corresponding volume form of the flat/Euclidean metric "d", represented in terms of projections of the Ricci curvature tensor, with purely symbolic partial derivative operators
"Properties"list of properties

Examples

Basic Examples (3) 

Construct the Ricci curvature tensor for the Schwarzschild metric (e.g. for an uncharged, non-rotating black hole with symbolic mass M) in standard spherical polar coordinates:

In[1]:=
metric = ResourceFunction["MetricTensor"]["Schwarzschild"]
Out[1]=
In[2]:=
ricci = ResourceFunction["RicciTensor"][metric]
Out[2]=

Show the Ricci curvature tensor for the Schwarzschild metric in explicit (covariant) matrix form:

In[3]:=
ricci["MatrixRepresentation"] // MatrixForm
Out[3]=

Show the Ricci curvature tensor for the Schwarzschild metric in explicit (covariant) matrix form, with all algebraic equivalences imposed:

In[4]:=
ricci["ReducedMatrixRepresentation"] // MatrixForm
Out[4]=

Deduce that the Schwarzschild metric is Ricci-flat:

In[5]:=
ricci["RicciFlatQ"]
Out[5]=

Show the list of Schwarzschild coordinate symbols:

In[6]:=
ricci["Coordinates"]
Out[6]=

Show the list of differential 1-form symbols for each of the Schwarzschild coordinates:

In[7]:=
ricci["CoordinateOneForms"]
Out[7]=

Show the list of coordinate conditions that must hold for the Schwarzschild metric to be Lorentzian:

In[8]:=
ricci["LorentzianConditions"]
Out[8]=

Construct the Ricci curvature tensor for the Friedmann-Lemaître-Robertson-Walker (FLRW) metric (for a homogeneous, isotropic and uniformly-expanding/contracting universe, with symbolic curvature parameter "k" and symbolic scale factor "a") in standard spherical polar coordinates:

In[9]:=
metric = ResourceFunction["MetricTensor"]["FLRW"]
Out[9]=
In[10]:=
ricci = ResourceFunction["RicciTensor"][metric]
Out[10]=
In[11]:=
ricci["MatrixRepresentation"] // MatrixForm
Out[11]=

Show the explicit matrix form, with all algebraic equivalences imposed:

In[12]:=
ricci["ReducedMatrixRepresentation"] // MatrixForm
Out[12]=

Deduce that the FLRW metric is not Ricci-flat:

In[13]:=
ricci["RicciFlatQ"]
Out[13]=

Show the list of conditions that must hold for the FLRW metric to be Ricci-flat:

In[14]:=
ricci["RicciFlatConditions"]
Out[14]=

Show the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor) for the FLRW metric:

In[15]:=
ricci["RicciScalar"]
Out[15]=

Show the Ricci curvature scalar for the FLRW metric, with all algebraic equivalences imposed:

In[16]:=
ricci["ReducedRicciScalar"]
Out[16]=

Deduce that the Ricci curvature scalar for the FLRW metric is non-vanishing:

In[17]:=
ricci["VanishingRicciScalarQ"]
Out[17]=

Show the condition that must hold for the FLRW metric to have a vanishing Ricci curvature scalar:

In[18]:=
ricci["VanishingRicciScalarCondition"]
Out[18]=

Show the Taylor expansion for the volume of a small geodesic ball in the FLRW metric, as compared to the volume of a small geodesic ball of equivalent radius in flat/Minkowski spacetime:

In[19]:=
ricci["ScalarVolumeExpansion"]
Out[19]=

Show the Taylor expansion for the volume of a small geodesic ball in the FLRW metric, with all algebraic equivalences imposed:

In[20]:=
ricci["ReducedScalarVolumeExpansion"]
Out[20]=

Show the Taylor expansion (along a Jacobi field) for the metric volume form in the FLRW metric, as compared to the metric volume form in flat/Minkowski spacetime:

In[21]:=
ricci["VolumeFormExpansion"]
Out[21]=

Show the Taylor expansion (along a Jacobi field) for the metric volume form in the FLRW metric, with all algebraic equivalences imposed:

In[22]:=
ricci["ReducedVolumeFormExpansion"]
Out[22]=

Show the list of coordinate values that cause the Ricci curvature tensor for the FLRW metric to become singular:

In[23]:=
ricci["CurvatureSingularities"]
Out[23]=

Show the list of coordinate values that cause the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor) for the FLRW metric to become singular, and note that they are the same as the above:

In[24]:=
ricci["ScalarCurvatureSingularities"]
Out[24]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the manifold) of the Ricci curvature tensor for the FLRW metric:

In[25]:=
ricci["CovariantDerivatives"]
Out[25]=

Show the association of all covariant derivatives of the Ricci curvature tensor for the FLRW metric, with all algebraic equivalences imposed:

In[26]:=
ricci["ReducedCovariantDerivatives"]
Out[26]=

Show the list of all (contracted) Bianchi identities relating the covariant derivatives of the Ricci curvature tensor and the Ricci curvature scalar for the FLRW metric:

In[27]:=
ricci["BianchiIdentities"]
Out[27]=

Show that the (contracted) Bianchi identities for the FLRW metric all hold identically:

In[28]:=
FullSimplify[%]
Out[28]=

Construct the Ricci curvature tensor for the Kerr-Newman metric (e.g. for a charged, spinning black hole with symbolic mass "M", symbolic angular momentum "J" and symbolic electric charge "Q") in Boyer-Lindquist/oblate spheroidal coordinates:

In[29]:=
metric = ResourceFunction["MetricTensor"]["KerrNewman"]
Out[29]=
In[30]:=
ricci = ResourceFunction["RicciTensor"][metric]
Out[30]=
In[31]:=
ricci["ReducedMatrixRepresentation"] // MatrixForm
Out[31]=

Extract (and simplify) the time-time component of the Ricci curvature tensor for the Kerr-Newman metric:

In[32]:=
ricci[1, 1] // Simplify
Out[32]=

Extract (and simplify) the first row of the Ricci curvature tensor for the Kerr-Newman metric in matrix form:

In[33]:=
ricci[1, All] // Simplify
Out[33]=

Extract (and simplify) the first column of the Ricci curvature tensor for the Kerr-Newman metric in matrix form:

In[34]:=
ricci[All, 1] // Simplify
Out[34]=

Compute the contravariant form of the Ricci curvature tensor (with both indices raised):

In[35]:=
ricci2 = ricci["ContravariantRicciTensor"]
Out[35]=
In[36]:=
ricci2["ReducedMatrixRepresentation"] // MatrixForm
Out[36]=
In[37]:=
ricci2["ContravariantQ"]
Out[37]=
In[38]:=
ricci2["Symbol"]
Out[38]=

Compute a mixed form of the Ricci curvature tensor with one index raised/contravariant and one index lowered/covariant:

In[39]:=
ricci3 = ResourceFunction["RicciTensor"][ricci, False, True]
Out[39]=
In[40]:=
ricci3["ReducedMatrixRepresentation"] // MatrixForm
Out[40]=
In[41]:=
ricci3["MixedQ"]
Out[41]=
In[42]:=
ricci3["Symbol"]
Out[42]=

Transform to use the new coordinate symbols t, r, a1 and a2:

In[43]:=
ricci4 = ResourceFunction["RicciTensor"][ricci, {t, r, a1, a2}]
Out[43]=
In[44]:=
ricci4["ReducedMatrixRepresentation"] // MatrixForm
Out[44]=

Transform to use the new coordinate symbols t, r, a1 and a2, and raise both indices, simultaneously:

In[45]:=
ricci5 = ResourceFunction["RicciTensor"][ricci, {t, r, a1, a2}, False, False]
Out[45]=
In[46]:=
ricci5["ReducedMatrixRepresentation"] // MatrixForm
Out[46]=

Scope (3) 

Ricci curvature tensors can be constructed directly from a MetricTensor expression:

In[47]:=
ricci = ResourceFunction["RicciTensor"][
  ResourceFunction["MetricTensor"]["Godel"]]
Out[47]=
In[48]:=
ricci["VolumeFormExpansion"]
Out[48]=

Additional arguments can be used to specify the coordinate names (otherwise default symbols will be chosen automatically):

In[49]:=
ricci2 = ResourceFunction["RicciTensor"][
  ResourceFunction["MetricTensor"]["Godel"], {T, X, Y, Z}]
Out[49]=
In[50]:=
ricci2["VolumeFormExpansion"]
Out[50]=

Or the indices (True for lowered/covariant and False for raised/contravariant - otherwise both indices will be set as lowered/covariant by default):

In[51]:=
ricci3 = ResourceFunction["RicciTensor"][
  ResourceFunction["MetricTensor"]["Godel"], False, False]
Out[51]=
In[52]:=
ricci3["Symbol"]
Out[52]=

Or both simultaneously:

In[53]:=
ricci4 = ResourceFunction["RicciTensor"][
  ResourceFunction["MetricTensor"]["Godel"], {T, X, Y, Z}, True, False]
Out[53]=
In[54]:=
ricci4["VolumeFormExpansion"]
Out[54]=
In[55]:=
ricci4["Symbol"]
Out[55]=

New coordinate symbols can be specified for any Ricci curvature tensor:

In[56]:=
ricci = ResourceFunction["RicciTensor"][
  ResourceFunction["MetricTensor"]["Kerr"]]
Out[56]=
In[57]:=
ricci["Coordinates"]
Out[57]=
In[58]:=
ricci2 = ResourceFunction["RicciTensor"][ricci, {T, R, a1, a2}]
Out[58]=
In[59]:=
ricci2["Coordinates"]
Out[59]=

Indices can also be raised and lowered on any Ricci curvature tensor:

In[60]:=
ricci3 = ResourceFunction["RicciTensor"][ricci, False, False]
Out[60]=
In[61]:=
ricci3["Symbol"]
Out[61]=
In[62]:=
ricci3["ContravariantQ"]
Out[62]=

New coordinate symbols and new index positions can also be specified simultaneously:

In[63]:=
ricci4 = ResourceFunction["RicciTensor"][ricci, {T, R, a1, a2}, False, False]
Out[63]=
In[64]:=
ricci4["Symbol"]
Out[64]=
In[65]:=
ricci4["Coordinates"]
Out[65]=

Construct the Ricci curvature tensor for the FLRW metric, with symbolic curvature parameter "k" and symbolic scale factor "a":

In[66]:=
metric = ResourceFunction["MetricTensor"]["FLRW"]
Out[66]=
In[67]:=
ricci = ResourceFunction["RicciTensor"][metric]
Out[67]=

Show the list of properties:

In[68]:=
ricci["Properties"]
Out[68]=

Show the explicit matrix representation of the Ricci curvature tensor:

In[69]:=
ricci["MatrixRepresentation"]
Out[69]=

Show the explicit matrix representation of the Ricci curvature tensor, with all algebraic equivalences imposed:

In[70]:=
ricci["ReducedMatrixRepresentation"]
Out[70]=

Show the explicit matrix representation of the Ricci curvature tensor, with all partial derivative operators left purely symbolic:

In[71]:=
ricci["SymbolicMatrixRepresentation"]
Out[71]=

Show the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor):

In[72]:=
ricci["RicciScalar"]
Out[72]=

Show the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with all algebraic equivalences imposed:

In[73]:=
ricci["ReducedRicciScalar"]
Out[73]=

Show the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with all partial derivative operators left purely symbolic:

In[74]:=
ricci["SymbolicRicciScalar"]
Out[74]=

Show the metric tensor for the underlying manifold represented by the Ricci curvature tensor:

In[75]:=
ricci["MetricTensor"]
Out[75]=

Show the list of coordinate symbols for the Ricci curvature tensor:

In[76]:=
ricci["Coordinates"]
Out[76]=

Show the list of differential 1-form symbols for the coordinates of the Ricci curvature tensor:

In[77]:=
ricci["CoordinateOneForms"]
Out[77]=

Show the list of booleans specifying the positions of the indices of the Ricci curvature tensor (True for lowered/covariant and False for raised/contravariant):

In[78]:=
ricci["Indices"]
Out[78]=

Determine whether the Ricci curvature tensor is covariant (i.e. both indices are lowered/covariant):

In[79]:=
ricci["CovariantQ"]
Out[79]=

Determine whether the Ricci curvature tensor is contravariant (i.e. both indices are raised/contravariant):

In[80]:=
ricci["ContravariantQ"]
Out[80]=

Determine whether the Ricci curvature tensor is mixed (i.e. one index is lowered/covariant and one index is raised/contravariant):

In[81]:=
ricci["MixedQ"]
Out[81]=

Show a symbolic representation of the Ricci curvature tensor with appropriately raised/lowered indices:

In[82]:=
ricci["Symbol"]
Out[82]=

Determine whether the underlying manifold is Ricci-flat (i.e. all components of the Ricci curvature tensor vanish):

In[83]:=
ricci["RicciFlatQ"]
Out[83]=

Determine whether the underlying manifold has a vanishing Ricci curvature scalar (i.e. whether the trace of the Ricci curvature tensor vanishes):

In[84]:=
ricci["VanishingRicciScalarQ"]
Out[84]=

Show the list of conditions required to guarantee that the underlying manifold is Ricci-flat (i.e. all components of the Ricci curvature tensor vanish):

In[85]:=
ricci["RicciFlatConditions"]
Out[85]=

Show the condition required to guarantee that the underlying manifold has a vanishing Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor vanished):

In[86]:=
ricci["VanishingRicciScalarCondition"]
Out[86]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor:

In[87]:=
ricci["CovariantDerivatives"]
Out[87]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor, with all algebraic equivalences imposed:

In[88]:=
ricci["ReducedCovariantDerivatives"]
Out[88]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the underlying manifold) of the Ricci curvature tensor, with all partial derivative operators left purely symbolic:

In[89]:=
ricci["SymbolicCovariantDerivatives"]
Out[89]=

Show the list of all (contracted) Bianchi identities relating the covariant derivatives of the Ricci curvature tensor and the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor):

In[90]:=
ricci["BianchiIdentities"]
Out[90]=

Show the list of all (contracted) Bianchi identities relating the covariant derivatives of the Ricci curvature tensor and the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with all partial derivative operators left purely symbolic:

In[91]:=
ricci["SymbolicBianchiIdentities"]
Out[91]=

Show the number of dimensions of the underlying manifold represented by the Ricci curvature tensor:

In[92]:=
ricci["Dimensions"]
Out[92]=

Determine whether the Ricci curvature tensor is symmetric (in explicit, covariant matrix form):

In[93]:=
ricci["SymmetricQ"]
Out[93]=

Determine whether the Ricci curvature tensor is diagonal (in explicit, covariant matrix form):

In[94]:=
ricci["DiagonalQ"]
Out[94]=

Show the signature of the underlying manifold represented by the Ricci curvature tensor (with +1s representing positive eigenvalues and -1s representing negative eigenvalues of the metric tensor):

In[95]:=
ricci["Signature"]
Out[95]=

Determine whether the underlying manifold represented by the Ricci curvature tensor is Riemannian (i.e. all eigenvalues of the metric tensor have the same sign):

In[96]:=
ricci["RiemannianQ"]
Out[96]=

Determine whether the underlying manifold represented by the Ricci curvature tensor is pseudo-Riemannian (i.e. all eigenvalues are non-zero, but not all have the same sign):

In[97]:=
ricci["PseudoRiemannianQ"]
Out[97]=

Determine whether the underlying manifold represented by the Ricci curvature tensor is Lorentzian (i.e. all eigenvalues of the metric tensor have the same sign, except for one eigenvalue which has the opposite sign):

In[98]:=
ricci["LorentzianQ"]
Out[98]=

Show the list of conditions on the coordinates required to guarantee that the underlying manifold represented by the Ricci curvature tensor is Riemannian (i.e. all eigenvalues of the metric tensor are positive):

In[99]:=
ricci["RiemannianConditions"]
Out[99]=

Show the list of conditions on the coordinates required to guarantee that the underlying manifold represented by the Ricci curvature tensor is pseudo-Riemannian (i.e. all eigenvalues are non-zero):

In[100]:=
ricci["PseudoRiemannianConditions"]
Out[100]=

Show the list of conditions on the coordinates required to guarantee that the underlying manifold represented by the Ricci curvature tensor is Lorentzian (i.e. the "time" eigenvalue is negative, and all other eigenvalues are positive):

In[101]:=
ricci["LorentzianConditions"]
Out[101]=

Show the list of coordinate values that cause the Ricci curvature tensor to become singular:

In[102]:=
ricci["CurvatureSingularities"]
Out[102]=

Show the list of coordinate values that cause the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor) to become singular:

In[103]:=
ricci["ScalarCurvatureSingularities"]
Out[103]=

Show the determinant of the Ricci curvature tensor (when represented as a covariant matrix):

In[104]:=
ricci["Determinant"]
Out[104]=

Show the determinant of the Ricci curvature tensor (when represented as a covariant matrix), with all algebraic equivalences imposed:

In[105]:=
ricci["ReducedDeterminant"]
Out[105]=

Show the determinant of the Ricci curvature tensor (when represented as a covariant matrix), with all partial derivative operators left purely symbolic:

In[106]:=
ricci["SymbolicDeterminant"]
Out[106]=

Show the eigenvalues of the Ricci curvature tensor (when represented as a covariant matrix):

In[107]:=
ricci["Eigenvalues"]
Out[107]=

Show the eigenvalues of the Ricci curvature tensor (when represented as a covariant matrix), with all algebraic equivalences imposed:

In[108]:=
ricci["ReducedEigenvalues"]
Out[108]=

Show the eigenvectors of the Ricci curvature tensor (when represented as a covariant matrix):

In[109]:=
ricci["Eigenvectors"]
Out[109]=

Show the eigenvectors of the Ricci curvature tensor (when represented as a covariant matrix), with all algebraic equivalences imposed:

In[110]:=
ricci["ReducedEigenvectors"]
Out[110]=

Compute the covariant form of the Ricci curvature tensor (with both indices lowered/covariant):

In[111]:=
ricci["CovariantRicciTensor"]
Out[111]=

Compute the contravariant form of the Ricci curvature tensor (with both indices raised/contravariant):

In[112]:=
ricci["ContravariantRicciTensor"]
Out[112]=

Show the Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ", relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor):

In[113]:=
ricci["ScalarVolumeExpansion"]
Out[113]=

Show the Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ", relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with all algebraic equivalences imposed:

In[114]:=
ricci["ReducedScalarVolumeExpansion"]
Out[114]=

Show the Taylor expansion for the volume "V" of a small geodesic ball of radius "ϵ", relative to the volume "" of the corresponding ball in flat/Euclidean space, represented in terms of the Ricci curvature scalar (i.e. the trace of the Ricci curvature tensor), with all partial derivative operators left purely symbolic:

In[115]:=
ricci["SymbolicScalarVolumeExpansion"]
Out[115]=

Show the Taylor expansion (along a Jacobi field) for the metric volume form "dV", relative to the corresponding volume form "d" in flat/Euclidean space, represented in terms of projections of the Ricci curvature tensor:

In[116]:=
ricci["VolumeFormExpansion"]
Out[116]=

Show the Taylor expansion (along a Jacobi field) for the metric volume form "dV", relative to the corresponding volume form "d" in flat/Euclidean space, represented in terms of projections of the Ricci curvature tensor, with all algebraic equivalences imposed:

In[117]:=
ricci["ReducedVolumeFormExpansion"]
Out[117]=

Show the Taylor expansion (along a Jacobi field) for the metric volume form "dV", relative to the corresponding volume form "d" in flat/Euclidean space, represented in terms of projections of the Ricci curvature tensor, with all partial derivative operators left purely symbolic:

In[118]:=
ricci["SymbolicVolumeFormExpansion"]
Out[118]=

Publisher

Jonathan Gorard

Version History

  • 1.0.0 – 27 January 2023

Source Metadata

Related Resources

License Information