Function Repository Resource:

ExtrinsicCurvatureTensor

Source Notebook

Represent the extrinsic curvature tensor field for a Riemannian submanifold

Contributed by: Jonathan Gorard

ResourceFunction["ExtrinsicCurvatureTensor"][ADMDecomposition[],i1,i2]

represents the extrinsic curvature tensor associated to the (spatial) submanifolds/spacelike hypersurfaces of the given ADMDecomposition, with indices i1 and i2.

ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],i1,i2]

transforms a specified ResourceFunction["ExtrinsicCurvatureTensor"] into one with new indices i1 and i2 raising and lowering existing indices as necessary.

ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t]

transforms a specified ResourceFunction["ExtrinsicCurvatureTensor"] into one with new distinguished "time" coordinate t.

ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],α,βi]

transforms a specified ResourceFunction["ExtrinsicCurvatureTensor"] into one with new lapse function α and new shift vector (field) βi.

ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t,α,βi]

transforms a specified ResourceFunction["ExtrinsicCurvatureTensor"] into one with new distinguished "time" coordinate t, new lapse function α and new shift vector (field) βi.

ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t,α,βi,i1,i2]

transforms a specified ResourceFunction["ExtrinsicCurvatureTensor"] into one with new distinguished "time" coordinate t, new lapse function α, new shift vector (field) βi and new indices i1 and i2, raising and lowering existing indices as necessary.

Details

ResourceFunction["ExtrinsicCurvatureTensor"] works for both Riemannian and pseudo-Riemannian submanifolds.
Formally, the extrinsic curvature tensor is a (symmetric) bilinear form defined on the tangent space at a specified point of a submanifold/spacelike hypersurface embedded within a larger ambient manifold/spacetime, and the extrinsic curvature tensor field associates an extrinsic curvature tensor to every such point in that submanifold/spacelike hypersurface. The components of the extrinsic curvature tensor represent the corresponding conjugate momenta of the components of the induced/spatial metric tensor on the submanifolds/spacelike hypersurfaces, and they characterize how the submanifolds/spacelike hypersurfaces are embedded geometrically into the ambient manifold/spacetime.
Strictly speaking, ResourceFunction["ExtrinsicCurvatureTensor"] represents an extrinsic curvature tensor field rather than a single extrinsic curvature tensor (this terminological ambiguity is commonplace in both geometry and physics, and ResourceFunction["ExtrinsicCurvatureTensor"] generally does not make any such distinction).
The extrinsic curvature tensor is calculated using the ADM formalism (due to Arnowitt, Deser and Misner), in which a Riemannian or pseudo-Riemannian manifold is foliated into a sequence of submanifolds; in the case of general relativity, the ambient manifold is a Lorentzian spacetime and the submanifolds are spacelike hypersurfaces of codimension-1, thus allowing one to formulate the Einstein field equations as an explicit time evolution/initial value problem (whose dynamical variables are the components of the spatial metric tensor and the extrinsic curvature tensor on each spacelike hypersurface).
By default, ResourceFunction["ExtrinsicCurvatureTensor"][ADMDecomposition[],i1,i2] represents an extrinsic curvature tensor by a (symmetric) matrix representation of linear combinations of (covariant) derivatives of the ADM gauge variables and (partial) derivatives of the spatial 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 differential geometry, the mathematical significance of the extrinsic curvature tensor is that it provides a concrete representation of the second fundamental form of the embedded submanifold, and therefore, together with the first fundamental form (i.e. the spatial metric tensor/metric line element), completely determines the extrinsic invariants of the submanifold, i.e. its principal curvatures.
ResourceFunction["ExtrinsicCurvatureTensor"] does not assume any particular number of dimensions, nor any particular metric convention, for the ambient manifold (although some properties, such as "LorentzianConditions", implicitly assume a (-,+,+,+,) signature). ResourceFunction["ExtrinsicCurvatureTensor"] also does not require the ambient metric to be strictly symmetric (i.e. spin and torsion connections are also supported), although the computation of the extrinsic curvature tensor implicitly assumes the torsion-free Levi-Civita connection by default.
ResourceFunction["ExtrinsicCurvatureTensor"] 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["ExtrinsicCurvatureTensor"] evaluates all partial derivatives of the spatial metric tensor and gauge variables 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 derivatives unevaluated instead (note that this can have the effect of increasing expression length significantly).
If the function succeeds in constructing the specified extrinsic curvature tensor, it will return an ResourceFunction["ExtrinsicCurvatureTensor"] expression.
Calling ResourceFunction["ExtrinsicCurvatureTensor"][][i,j] returns the entry in the i-th column and the j-th row of the matrix representation of the extrinsic curvature tensor; similarly, ResourceFunction["ExtrinsicCurvatureTensor"][][i,All] and ResourceFunction["ExtrinsicCurvatureTensor"][][All,j] return the complete i-th row and the complete j-th column of the matrix representation, respectively.
Calling ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t] has the effect of transforming the ADM decomposition/underlying spatial metric tensor (and hence the extrinsic curvature tensor) to use the new distinguished "time" coordinate t. Calling ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],α,βi] has the effect of transforming the ADM decomposition (and hence the extrinsic curvature tensor) to use the new lapse function α and shift vector (field) βi. Calling ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t,α,βi] has the effect of performing both transformations simultaneously. Similarly, calling ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],i1,i2] has the effect of raising and lowering appropriate indices of the extrinsic curvature tensor to match i1 and i2 (with True representing lowered/covariant and False representing raised/contravariant). Calling ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t,i1,i2] or ResourceFunction["ExtrinsicCurvatureTensor"][ResourceFunction["ExtrinsicCurvatureTensor"][],t,α,βi,i1,i2] has the effect of performing both (or all three) transformations simultaneously.
By default, ResourceFunction["ExtrinsicCurvatureTensor"] 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 ambient metric tensor in covariant form, the ambient manifold/spacetime will be classified by ResourceFunction["ExtrinsicCurvatureTensor"] as either Riemannian (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 ambient metric tensor are strictly positive; "PseudoRiemannianConditions" returns the conditions necessary to guarantee that the eigenvalues of the matrix representation of the ambient metric tensor are all non-zero; "LorentzianConditions" returns the conditions necessary to guarantee that the eigenvalue corresponding to the {1,0,0,} eigenvector of the ambient 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["ExtrinsicCurvatureTensor"], the following properties are supported:
"MatrixRepresentation"extrinsic curvature tensor represented in explicit matrix form
"ReducedMatrixRepresentation"extrinsic curvature tensor represented in explicit matrix form, modulo all tensor equivalences
"SymbolicMatrixRepresentation"extrinsic curvature tensor represented in explicit matrix form, with purely symbolic partial derivative operators
"Trace"trace of the extrinsic curvature tensor
"ReducedTrace"trace of the extrinsic curvature tensor, modulo all tensor equivalences
"SymbolicTrace"trace of the extrinsic curvature tensor, with purely symbolic partial derivative operators
"ADMDecomposition"underlying ADM decomposition associated to the extrinsic curvature tensor
"SpatialMetricTensor"underlying (spatial) metric tensor on the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor
"SpacetimeMetricTensor"metric tensor on the ambient manifold/spacetime associated to the extrinsic curvature tensor
"NormalVector"(future-pointing, timelike) unit vector normal to the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor
"ReducedNormalVector"(future-pointing, timelike) unit vector normal to the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor, modulo all tensor equivalences
"SymbolicNormalVector"(future-pointing, timelike) unit vector normal to the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor, with purely symbolic partial derivative operators
"TimeVector"(future-pointing, timelike) "time vector" connecting corresponding points on neighboring submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor
"SymbolicTimeVector"(future-pointing, timelike) "time vector" connecting corresponding points on neighboring submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor, with purely symbolic partial derivative operators
"TimeCoordinate"distinguished "time" coordinate symbol for the extrinsic curvature tensor
"SpatialCoordinates"list of distinguished "spatial" coordinate symbols for the extrinsic curvature tensor
"CoordinateOneForms"list of differential 1-form symbols for the ambient/spacetime coordinates of the extrinsic curvature tensor
"LapseFunction"lapse function determining "timelike" coordinate distance between neighboring submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor
"ShiftVector"shift vector (field) determining how "spatial" coordinates are relabeled between neighboring submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor
"Indices"list of booleans specifying whether each index of the extrinsic curvature tensor is lowered/covariant (True) or raised/contravariant (False)
"CovariantQ"whether the extrinsic curvature tensor is covariant (i.e. both indices are lowered/covariant)
"ContravariantQ"whether the extrinsic curvature tensor is contravariant (i.e. both indices are raised/contravariant)
"MixedQ"whether the extrinsic curvature tensor is mixed (i.e. one index is lowered/covariant and one index is raised/contravariant)
"Symbol"symbolic representation of the extrinsic curvature tnesor with appropriately raised/lowered indices
"ExtrinsicallyFlatQ"whether the underlying submanifolds/spacelike hypersurfaces are extrinsically-flat (i.e. all components of the extrinsic curvature tensor vanish)
"VanishingExtrinsicTraceQ"whether the trace of the extrinsic curvature tensor vanishes
"ExtrinsicallyFlatConditions"list of conditions required to guarantee that the underlying submanifolds/spacelike hypersurfaces are extrinsically-flat (i.e. all components of the extrinsic curvature tensor vanish)
"VanishingExtrinsicTraceCondition"condition required to guarantee that the trace of the extrinsic curvature tensor vanishes
"CovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying submanifolds/spacelike hypersurfaces) of the extrinsic curvature tensor
"ReducedCovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying submanifolds/spacelike hypersurfaces) of the extrinsic curvature tensor, modulo all tensor equivalences
"SymbolicCovariantDerivatives"association of covariant derivatives (i.e. derivatives along tangent vectors of the underlying submanifolds/spacelike hypersurfaces) of the extrinsic curvature tensor, with purely symbolic partial derivative operators
"Dimensions"number of dimensions of the ambient manifold/spacetime described by the extrinsic curvature tensor
"SymmetricQ"whether the extrinsic curvature tensor is symmetric (i.e. is represented by a symmetric matrix in covariant form)
"DiagonalQ"whether the extrinsic 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 ambient manifold/spacetime associated to the extrinsic curvature tensor (+1 for each positive eigenvalue of the metric, -1 for each negative eigenvalue of the metric)
"RiemannianQ"whether the ambient manifold/spacetime associated to the extrinsic curvature tensor is Riemannian (i.e. all eigenvalues of the metric have the same sign)
"PseudoRiemannianQ"whether the ambient manifold/spacetime associated to the extrinsic 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 ambient manifold/spacetime associated to the extrinsic 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 ambient manifold/spacetime associated to the extrinsic curvature tensor is Riemannian (i.e. all eigenvalues of the metric are positive)
"PseudoRiemannianConditions"list of conditions required to guarantee that the ambient manifold/spacetime associated to the extrinsic curvature tensor is pseudo-Riemannian (i.e. all eigenvalues of the metric are non-zero)
"LorentzianConditions"list of conditions required to guarantee that the ambient manifold/spacetime associated to the extrinsic 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 extrinsic curvature tensor to become singular
"TraceSingularities"list of possible coordinate values that cause the trace of the extrinsic curvature tensor to become singular
"Determinant"determinant of the extrinsic curvature tensor (represented in covariant matrix form)
"ReducedDeterminant"determinant of the extrinsic curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"SymbolicDeterminant"determinant of the extrinsic curvature tensor (represented in covariant matrix form), with purely symbolic partial derivative operators
"Eigenvalues"eigenvalues of the extrinsic curvature tensor (represented in covariant matrix form)
"ReducedEigenvalues"eigenvalues of the extrinsic curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"Eigenvectors"eigenvectors of the extrinsic curvature tensor (represented in covariant matrix form)
"ReducedEigenvectors"eigenvectors of the extrinsic curvature tensor (represented in covariant matrix form), modulo all tensor equivalences
"CovariantExtrinsicCurvatureTensor"covariant form of the extrinsic curvature tensor (i.e. both indices are lowered/covariant)
"ContravariantExtrinsicCurvatureTensor"contravariant form of the extrinsic curvature tensor (i.e. both indices are raised/contravariant)
"Properties"list of properties

Examples

Basic Examples (3) 

Construct the extrinsic curvature tensor for the ADM decomposition for the Schwarzschild metric (e.g. for an uncharged, non-rotating black hole with symbolic mass "M") in standard spherical polar coordinates, using the most general/maximally-unconstrained choice of gauge:

In[1]:=
adm = ResourceFunction["ADMDecomposition"]["Schwarzschild"]
Out[1]=
In[2]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][adm]
Out[2]=

Show the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric in explicit (covariant) matrix form:

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

Show the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric in explicit (covariant) matrix form, with all algebraic equivalences imposed:

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

Deduce that the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric is not extrinsically-flat:

In[5]:=
extrinsic["ExtrinsicallyFlatQ"]
Out[5]=

Show the list of conditions that must hold for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric to be extrinsically-flat:

In[6]:=
extrinsic["ExtrinsicallyFlatConditions"]
Out[6]=

Show the lapse function for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric:

In[7]:=
extrinsic["LapseFunction"]
Out[7]=

Show the shift vector for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric:

In[8]:=
extrinsic["ShiftVector"]
Out[8]=

Show the future-pointing, timelike unit vector normal to spacelike hypersurfaces in the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric:

In[9]:=
extrinsic["NormalVector"]
Out[9]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the submanifolds/spacelike hypersurfaces) of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric:

In[10]:=
Short[extrinsic["CovariantDerivatives"], 20]
Out[10]=

Show the association of all covariant derivatives of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Schwarzschild metric, with all algebraic equivalences imposed:

In[11]:=
Short[extrinsic["ReducedCovariantDerivatives"], 20]
Out[11]=

Construct the extrinsic curvature tensor for the ADM decomposition for the Kerr metric (e.g. for an uncharged, spinning black hole with symbolic mass "M" and symbolic angular momentum "J") in Boyer-Lindquist/oblate spheroidal coordinates, using the most general/maximally-unconstrained choice of gauge:

In[12]:=
adm = ResourceFunction["ADMDecomposition"]["Kerr"]
Out[12]=
In[13]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][adm]
Out[13]=
In[14]:=
extrinsic["MatrixRepresentation"] // MatrixForm
Out[14]=

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

In[15]:=
extrinsic["ReducedMatrixRepresentation"] // MatrixForm
Out[15]=

Show the trace of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric:

In[16]:=
extrinsic["Trace"]
Out[16]=

Show the trace of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric, with all algebraic equivalences imposed:

In[17]:=
extrinsic["ReducedTrace"]
Out[17]=

Deduce that the trace of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric is non-vanishing:

In[18]:=
extrinsic["VanishingExtrinsicTraceQ"]
Out[18]=

Show the condition that must hold for the (maximally-unconstrained) ADM decomposition of the Kerr metric to have a vanishing trace of the extrinsic curvature tensor:

In[19]:=
extrinsic["VanishingExtrinsicTraceCondition"]
Out[19]=

Show the list of coordinate values that cause the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric to become singular:

In[20]:=
extrinsic["CurvatureSingularities"]
Out[20]=

Show the list of coordinate values that cause the trace of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric to become singular:

In[21]:=
extrinsic["TraceSingularities"]
Out[21]=

Show the association of all covariant derivatives (i.e. derivatives along tangent vectors of the submanifolds/spacelike hypersurfaces) of the extrinsic curvature tensor for the (maximally-unconstrained) ADM decomposition of the Kerr metric:

In[22]:=
Short[extrinsic["CovariantDerivatives"], 20]
Out[22]=

Construct the extrinsic curvature tensor for the ADM decomposition 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, using a partially-constrained choice of gauge (defined in terms of scalar functions a and b):

In[23]:=
adm = ResourceFunction["ADMDecomposition"]["KerrNewman", t, {r, a1, a2}, a[t, r, a1, a2], {0, 0, b[t, r, a1, a2]}]
Out[23]=
In[24]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][adm]
Out[24]=
In[25]:=
extrinsic["ReducedMatrixRepresentation"] // MatrixForm
Out[25]=

Extract (and simplify) the a2-a2 component of the extrinsic curvature tensor for the (partially-constrained) ADM decomposition of the Kerr-Newman metric:

In[26]:=
extrinsic[3, 3] // Simplify
Out[26]=

Extract (and simplify) the third row of the extrinsic curvature tensor for the (partially-constrained) ADM decomposition of the Kerr-Newman metric:

In[27]:=
extrinsic[3, All] // Simplify
Out[27]=

Extract (and simplify) the third column of the extrinsic curvature tensor for the (partially-constrained) ADM decomposition of the Kerr-Newman metric:

In[28]:=
extrinsic[All, 3] // Simplify
Out[28]=

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

In[29]:=
extrinsic2 = extrinsic["ContravariantExtrinsicCurvatureTensor"]
Out[29]=
In[30]:=
extrinsic2["ReducedMatrixRepresentation"] // MatrixForm
Out[30]=
In[31]:=
extrinsic2["ContravariantQ"]
Out[31]=
In[32]:=
extrinsic2["Symbol"]
Out[32]=

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

In[33]:=
extrinsic3 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, False, True]
Out[33]=
In[34]:=
extrinsic3["ReducedMatrixRepresentation"] // MatrixForm
Out[34]=
In[35]:=
extrinsic3["MixedQ"]
Out[35]=
In[36]:=
extrinsic3["Symbol"]
Out[36]=

Transform to use the new time coordinate symbol T, new lapse function A and new (angular) shift function B:

In[37]:=
extrinsic4 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T, A[T, r, a1, a2], {0, 0, B[T, r, a1, a2]}]
Out[37]=
In[38]:=
extrinsic4["ReducedMatrixRepresentation"] // MatrixForm
Out[38]=

Transform to use the new time coordinate symbol T, new lapse function A and new (angular) shift function B, and raise both indices, simultaneously:

In[39]:=
extrinsic5 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T, A[T, r, a1, a2], {0, 0, B[t, r, a1, a2]}, False, False]
Out[39]=
In[40]:=
extrinsic5["ReducedMatrixRepresentation"] // MatrixForm
Out[40]=

Scope (3) 

Extrinsic curvature tensors can be constructed directly from an ADMDecomposition expression:

In[41]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"]]
Out[41]=
In[42]:=
extrinsic["ReducedMatrixRepresentation"] // MatrixForm
Out[42]=

Additional arguments can be used to specify the distinguished "time" coordinate symbol (otherwise the default symbol "t" will be chosen automatically):

In[43]:=
extrinsic2 = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"], T]
Out[43]=
In[44]:=
extrinsic2["ReducedMatrixRepresentation"] // MatrixForm
Out[44]=

Or the lapse/shift gauge conditions:

In[45]:=
extrinsic3 = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"], 1, {0, 0, 0}]
Out[45]=
In[46]:=
extrinsic3["ReducedMatrixRepresentation"] // MatrixForm
Out[46]=

Or both simultaneously:

In[47]:=
extrinsic4 = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"], T, 1, {0, 0, 0}]
Out[47]=
In[48]:=
extrinsic4["ReducedMatrixRepresentation"] // MatrixForm
Out[48]=

Additional arguments can also be used to specify the indices (True for lowered/covariant and False for raised/contravariant - otherwise both indices will be set as lowered/covariant by default):

In[49]:=
extrinsic5 = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"], False, False]
Out[49]=
In[50]:=
extrinsic5["ReducedMatrixRepresentation"] // MatrixForm
Out[50]=

Or any combination of the above, simultaneously:

In[51]:=
ResourceFunction["ExtrinsicCurvatureTensor"][
   ResourceFunction["ADMDecomposition"]["FLRW"], T, False, False][
  "ReducedMatrixRepresentation"] // MatrixForm
Out[51]=
In[52]:=
ResourceFunction["ExtrinsicCurvatureTensor"][
   ResourceFunction["ADMDecomposition"]["FLRW"], 1, {0, 0, 0}, False, False]["ReducedMatrixRepresentation"] // MatrixForm
Out[52]=
In[53]:=
ResourceFunction["ExtrinsicCurvatureTensor"][
   ResourceFunction["ADMDecomposition"]["FLRW"], T, 1, {0, 0, 0}, False, False]["ReducedMatrixRepresentation"] // MatrixForm
Out[53]=

A new distinguished "time" coordinate symbol can be specified for any extrinsic curvature tensor:

In[54]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][
  ResourceFunction["ADMDecomposition"]["FLRW"], 1, {0, 0, 0}]
Out[54]=
In[55]:=
extrinsic["ReducedMatrixRepresentation"] // MatrixForm
Out[55]=
In[56]:=
extrinsic2 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T]
Out[56]=
In[57]:=
extrinsic2["ReducedMatrixRepresentation"] // MatrixForm
Out[57]=

New lapse/shift gauge conditions can also be specified for any extrinsic curvature tensor:

In[58]:=
extrinsic3 = ResourceFunction["ExtrinsicCurvatureTensor"][
  extrinsic, \[Alpha], {\[Beta], 0, 0}]
Out[58]=
In[59]:=
extrinsic3["ReducedMatrixRepresentation"] // MatrixForm
Out[59]=

New coordinate symbols and new lapse/shift gauge conditions can also be specified simultaneously:

In[60]:=
extrinsic4 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T, \[Alpha], {\[Beta], 0, 0}]
Out[60]=
In[61]:=
extrinsic4["ReducedMatrixRepresentation"] // MatrixForm
Out[61]=

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

In[62]:=
extrinsic5 = ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, False, False]
Out[62]=
In[63]:=
extrinsic5["ReducedMatrixRepresentation"] // MatrixForm
Out[63]=
In[64]:=
extrinsic5["Symbol"]
Out[64]=

Any combination of the above can also be specified, simultaneously:

In[65]:=
ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T, False, False]["ReducedMatrixRepresentation"] // MatrixForm
Out[65]=
In[66]:=
ResourceFunction["ExtrinsicCurvatureTensor"][
   extrinsic, \[Alpha], {\[Beta], 0, 0}, False, False][
  "ReducedMatrixRepresentation"] // MatrixForm
Out[66]=
In[67]:=
ResourceFunction["ExtrinsicCurvatureTensor"][extrinsic, T, \[Alpha], {\[Beta], 0, 0}, False, False][
  "ReducedMatrixRepresentation"] // MatrixForm
Out[67]=

Construct the extrinsic curvature tensor for the ADM decomposition for the Schwarzschild metric, with symbolic mass "M", and using a partially-constrained choice of gauge (defined in terms of scalar functions α and β):

In[68]:=
adm = ResourceFunction["ADMDecomposition"]["Schwarzschild", t, {r, \[Theta], \[Phi]}, \[Alpha][t, r, \[Theta], \[Phi]], {\[Beta][t, r, \[Theta], \[Phi]], 0, 0}]
Out[68]=
In[69]:=
extrinsic = ResourceFunction["ExtrinsicCurvatureTensor"][adm]
Out[69]=

Show the list of properties:

In[70]:=
extrinsic["Properties"]
Out[70]=

Show the explicit matrix representation of the extrinsic curvature tensor:

In[71]:=
extrinsic["MatrixRepresentation"]
Out[71]=

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

In[72]:=
extrinsic["ReducedMatrixRepresentation"]
Out[72]=

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

In[73]:=
extrinsic["SymbolicMatrixRepresentation"]
Out[73]=

Show the trace of the extrinsic curvature tensor:

In[74]:=
extrinsic["Trace"]
Out[74]=

Show the trace of the extrinsic curvature tensor, with all algebraic equivalences imposed:

In[75]:=
extrinsic["ReducedTrace"]
Out[75]=

Show the trace of the extrinsic curvature tensor, with all partial derivative operators left purely symbolic:

In[76]:=
extrinsic["SymbolicTrace"]
Out[76]=

Show the underlying ADM decomposition associated to the extrinsic curvature tensor:

In[77]:=
extrinsic["ADMDecomposition"]
Out[77]=

Show the spatial metric tensor (i.e. the metric tensor on submanifolds/spacelike hypersurfaces) associated to the extrinsic curvature tensor:

In[78]:=
extrinsic["SpatialMetricTensor"]
Out[78]=

Show the spacetime metric tensor (i.e. the metric tensor on the ambient manifold/spacetime) associated to the extrinsic curvature tensor:

In[79]:=
extrinsic["SpacetimeMetricTensor"]
Out[79]=

Show the future-pointing, timelike unit vector normal to submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor:

In[80]:=
extrinsic["NormalVector"]
Out[80]=

Show the future-pointing, timelike unit vector normal to submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor, with all algebraic equivalences imposed:

In[81]:=
extrinsic["ReducedNormalVector"]
Out[81]=

Show the future-pointing, timelike unit vector normal to submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor, with all partial derivative operators left purely symbolic:

In[82]:=
extrinsic["SymbolicNormalVector"]
Out[82]=

Show the future-pointing, timelike "time vector" associated to the extrinsic curvature tensor:

In[83]:=
extrinsic["TimeVector"]
Out[83]=

Show the future-pointing, timelike "time vector" associated to the extrinsic curvature tensor, with all partial derivative operators left purely symbolic:

In[84]:=
extrinsic["SymbolicTimeVector"]
Out[84]=

Show the distinguished time coordinate symbol associated to the extrinsic curvature tensor:

In[85]:=
extrinsic["TimeCoordinate"]
Out[85]=

Show the list of distinguished spatial coordinate symbols associated to the extrinsic curvature tensor:

In[86]:=
extrinsic["SpatialCoordinates"]
Out[86]=

Show the list of differential 1-form symbols for the (ambient/spacetime) coordinates associated to the extrinsic curvature tensor:

In[87]:=
extrinsic["CoordinateOneForms"]
Out[87]=

Show the lapse function associated to the extrinsic curvature tensor:

In[88]:=
extrinsic["LapseFunction"]
Out[88]=

Show the shift vector (field) associated to the extrinsic curvature tensor:

In[89]:=
extrinsic["ShiftVector"]
Out[89]=

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

In[90]:=
extrinsic["Indices"]
Out[90]=

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

In[91]:=
extrinsic["CovariantQ"]
Out[91]=

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

In[92]:=
extrinsic["ContravariantQ"]
Out[92]=

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

In[93]:=
extrinsic["MixedQ"]
Out[93]=

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

In[94]:=
extrinsic["Symbol"]
Out[94]=

Determine whether the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor are extrinsically-flat (i.e. all components of the extrinsic curvature tensor vanish):

In[95]:=
extrinsic["ExtrinsicallyFlatQ"]
Out[95]=

Determine whether the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor have a vanishing extrinsic trace:

In[96]:=
extrinsic["VanishingExtrinsicTraceQ"]
Out[96]=

Show the list of conditions required to guarantee that the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor are extrinsically-flat (i.e. all components of the extrinsic curvature tensor vanish):

In[97]:=
extrinsic["ExtrinsicallyFlatConditions"]
Out[97]=

Show the condition required to guarantee that the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor have a vanishing extrinsic trace:

In[98]:=
extrinsic["VanishingExtrinsicTraceCondition"]
Out[98]=

Show the association of all covariant derivatives (i.e. all derivatives along tangent vectors of the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor) of the extrinsic curvature tensor:

In[99]:=
Short[extrinsic["CovariantDerivatives"], 20]
Out[99]=

Show the association of all covariant derivatives (i.e. all derivatives along tangent vectors of the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor) of the extrinsic curvature tensor, with all algebraic equivalences imposed:

In[100]:=
Short[extrinsic["ReducedCovariantDerivatives"], 20]
Out[100]=

Show the association of all covariant derivatives (i.e. all derivatives along tangent vectors of the submanifolds/spacelike hypersurfaces associated to the extrinsic curvature tensor) of the extrinsic curvature tensor, with all partial derivative operators left purely symbolic:

In[101]:=
Short[extrinsic["SymbolicCovariantDerivatives"], 20]
Out[101]=

Show the number of dimensions of the ambient manifold/spacetime associated to the extrinsic curvature tensor:

In[102]:=
extrinsic["Dimensions"]
Out[102]=

Show the signature of the ambient manifold/spacetime associated to the extrinsic curvature tensor (with +1s representing positive eigenvalues and -1s representing negative eigenvalues of the metric tensor):

In[103]:=
extrinsic["Signature"]
Out[103]=

Determine whether the ambient manifold/spacetime associated to the extrinsic curvature tensor is Riemannian (i.e. all eigenvalues of the metric tensor have the same sign):

In[104]:=
extrinsic["RiemannianQ"]
Out[104]=

Determine whether the ambient manifold/spacetime associated to the extrinsic curvature tensor is pseudo-Riemannian (i.e. all eigenvalues of the metric tensor are non-zero, but not all have the same sign):

In[105]:=
extrinsic["PseudoRiemannianQ"]
Out[105]=

Determine whether the ambient manifold/spacetime associated to the extrinsic 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[106]:=
extrinsic["LorentzianQ"]
Out[106]=

Show the list of conditions on the coordinates required to guarantee that the ambient manifold/spacetime associated to the extrinsic curvature tensor is Riemannian (i.e. all eigenvalues of the metric tensor are positive):

In[107]:=
extrinsic["RiemannianConditions"]
Out[107]=

Show the list of conditions on the coordinates required to guarantee that the ambient manifold/spacetime associated to the extrinsic curvature tensor is pseudo-Riemannian (i.e. all eigenvalues of the metric tensor are non-zero):

In[108]:=
extrinsic["PseudoRiemannianConditions"]
Out[108]=

Show the list of conditions on the coordinates required to guarantee that the ambient manifold/spacetime associated to the extrinsic curvature tensor is Lorentzian (i.e. the "time" eigenvalue is negative, and all other eigenvalues are positive):

In[109]:=
extrinsic["LorentzianConditions"]
Out[109]=

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

In[110]:=
extrinsic["CurvatureSingularities"]
Out[110]=

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

In[111]:=
extrinsic["TraceSingularities"]
Out[111]=

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

In[112]:=
extrinsic["Determinant"]
Out[112]=

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

In[113]:=
extrinsic["ReducedDeterminant"]
Out[113]=

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

In[114]:=
Short[extrinsic["SymbolicDeterminant"], 10]
Out[114]=

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

In[115]:=
Short[extrinsic["Eigenvalues"], 20]
Out[115]=

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

In[116]:=
Short[extrinsic["ReducedEigenvalues"], 20]
Out[116]=

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

In[117]:=
extrinsic["Eigenvectors"]
Out[117]=

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

In[118]:=
extrinsic["ReducedEigenvectors"]
Out[118]=

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

In[119]:=
extrinsic["CovariantExtrinsicCurvatureTensor"]
Out[119]=

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

In[120]:=
extrinsic["ContravariantExtrinsicCurvatureTensor"]
Out[120]=

Publisher

Jonathan Gorard

Version History

  • 1.0.0 – 22 September 2023

Source Metadata

Related Resources

License Information