8. Geometry of Curved Surfaces

Initialization

Needs["TensorCalculus4`Tensorial`"]

Needs["TContinuumMechanics2`TContinuumMechanics`"]

Needs["DrawGraphics`DrawingMaster`"] <br />

numequ = 1 ;

SetScalarSingleCovariantD[False]

oldflavors = IndexFlavors ;

ClearIndexFlavor/@oldflavors ;

DeclareIndexFlavor[{black, Black}, {red, Red}, {green, ForestGreen}, {star, SuperStar}, {blue, Blue}, {hat, OverHat}, {tilde, OverTilde}, {bar, OverBar}]

Base2d = {1, 2} ;

Base3d = {1, 2, 3} ;

labsz = {x, δ, g, Γb} ;

labs0 = {x, δ, a, Γ} ;

SymbolSpaceDimension//Clear

LitteralIndices3d = ToExpression/@CharacterRange["a", "z"] ;

LitteralIndices2d = ToExpression/@CharacterRange["α", "ω"] ;

Table[Func[(SymbolSpaceDimension/@flavor_/@LitteralIndices3d)[[ind]], 3], {ind, Length[LitteralIndices3d]}]/.Func→Set ;

Table[Func[(SymbolSpaceDimension/@flavor_/@LitteralIndices2d)[[ind]], 2], {ind, Length[LitteralIndices2d]}]/.Func→Set ;

Notation of the 2d and 3d litteral indices :
Latin characters are used for 3d, greek characters are use for 2d spaces.
Then SymbolSpaceDimension[index] gives the dimension of the space concerned by index.
SymbolSpaceDimension[Symbol] gives the

TensorLabelFormat[bh, OverHat[b]]

TensorLabelFormat[h, OverHat[]]

TensorLabelFormat[h, OverHat[]]

TensorLabelFormat[Γb, OverBar[Γ]]

TensorLabelFormat[eb, OverBar[e]]

Print[General surface (z≠0)]

{{, g, eb, Γb, η, h}, {basis symbol, metric tensor, permutation tensor, Christoffel symbol, Strain tensor, deformed basis symbol}}//Transpose//TableForm

Print[Middle surface (z = 0)]

{{, a, e, Γ, ℰ, h}, {basis symbol, metric tensor, permutation tensor, Christoffel symbol, Strain tensor, deformed basis symbol}}//Transpose//TableForm

General surface (z≠0)

e basis symbol
g metric tensor
Overscript[e, _] permutation tensor
Overscript[Γ, _] Christoffel symbol
η Strain tensor
Overscript[,^] basis deformed symbol

Middle surface (z = 0)

a basis symbol
a metric tensor
e permutation tensor
Γ Christoffel symbol
E Strain tensor
Overscript[,^] basis deformed symbol

DefineTensorShortcuts[{{, , d, u, v, x, dx}, 1}, {{g, a, b, ε, e, eb, ℰ, ℋ, A}, 2}, {{e, Γ, Γb}, 3}, {{R}, 4}] ;

Table[Func[(SymbolSpaceDimension/@{, g, eb, Γb})[[ind]], 3], {ind, 4}]/.Func→Set ;

Table[Func[(SymbolSpaceDimension/@{, a, e, Γ})[[ind]], 2], {ind, 4}]/.Func→Set ;

The red basis is here a monoclinic basis :

SetTensorValues[gdd[i, j], IdentityMatrix[3]]

RedMetric = ( {{gdd[red @ 1, red @ 1], gdd[red @ 1, red @ 2], 0}, {gdd[red @ 2, red @ 1], gdd[red @ 2, red @ 2], 0}, {0, 0, 1}} ) ;

SetTensorValueRules[gdd[red @ i, red @ j], RedMetric]

SetTensorValueRules[guu[red @ i, red @ j], Inverse[RedMetric]]

SymbolSpaceDimension/@{, i, e, Γ}

{2, SymbolSpaceDimension[i], 2, 2}

Metric and Curvature

Metric and Curvature

In shell theory we shall consider points located on a certain curved surface, called middle surface, and its immediate vicinity. We use a coordinate system consisting of two curvilinear coordinates x_ α^α on that middle surface and the normal distance x_ 3^3 from it.
We shall be interested in comparing quantities defined for points of the middle surface, that is, as functions of x_ α^α, with quantities defined for another surface at a small, constant distance z from it. It is then convenient to use two different notations, one for the middle surface x_ 3^3= 0 and another for the generic surface
x_ 3^3= z = const, as showb in the following,

Notations : Deformation vectors : u for the middle surface (z = 0),  v for the general surface (z 0).
The red basis is for the general surface z 0, the red basis for the middle surface z = 0 :

 := ud[red @ i] u[red @ i]

 := vd[red @ i] u[red @ i]



%//PartialSum[red @ 3, {red @ α}]

%//SumExpansion[red @ α, {1, 2}]

u_i^i _i^i

u_3^3 _3^3 + u_α^α _α^α

u_1^1 _1^1 + u_2^2 _2^2 + u_3^3 _3^3

The basis vectors in the 2d surfaces are related to the position vectors s and r, with coordinates s = {x_ 1^1, x_ 2^2, x_ 3^3= 0} and r = {x_ 1^1, x_ 2^2, x_ 3^3=  z}

d[red @ α] == CovariantD[Tensor[], red @ α]

d[red @ α] == CovariantD[Tensor[], red @ α]

_α^α == _ (; α)

_α^α == _ (; α)

The metric tensor g_ (i  j)^(i  □)=_ i^i._ j^j is written,

(gdd[red @ i, red @ j]//ArrayExpansion[red @ i, red @ j])/.TensorValueRules[g]//MatrixForm

( {{g_ (11)^(11), g_ (12)^(12), 0}, {g_ (21)^(21), g_ (22)^(22), 0}, {0, 0, 1}} )

(guu[red @ i, red @ j]//ArrayExpansion[red @ i, red @ j])/.TensorValueRules[g]//MatrixForm

In this monoclinic basis, Christoffel symbols are simplified.
Overscript[Γ, _] (Γb) is the symbol used for the Christoffel symbols in the general surface (z ≠ 0) and : Γ==Overscript[Γ, _](z=0)

TensorSymmetry[Γ, 3] = Symmetric[2, 3] ;

TensorSymmetry[Γb, 3] = Symmetric[2, 3] ;

Note that here, due to the presence of curvature, the simplifications are less extended than in chapter 7.

DeclareBaseIndices[Base2d];
ed[red[α]].ed[red[3]]==0
PartialD[%[[1]],red[β]]==0
%//BasisDerivation[Γb,red@m][{e,red@α},red@β]//BasisDerivation[Γb,red@m][{e,red@3},red@β]
%//EvaluateDotProducts[e, g]
res1=%[[1]];
                        (* and  equivalently   *)
ed[red[β]].ed[red[3]]==0
PartialD[%[[1]],red[α]]==0
%//BasisDerivation[Γb,red@m][{e,red@β},red@α]//BasisDerivation[Γb,red@m][{e,red@3},red@α]
%//EvaluateDotProducts[e, g]
res2=%[[1]];

_α^α . _3^3 == 0

_3^3_ (, β) . _α^α + _α^α_ (, β) . _3^3 == 0

(_m^m Overscript[Γ, _] _ (mβ3)^(mβ3)) . _α^α + (_m^m Overscript[Γ, _] _ (mβα)^(mβα)) . _3^3 == 0

Overscript[Γ, _] _ (3βα)^(3βα) + Overscript[Γ, _] _ (αβ3)^(αβ3) == 0

_β^β . _3^3 == 0

_3^3_ (, α) . _β^β + _β^β_ (, α) . _3^3 == 0

(_m^m Overscript[Γ, _] _ (mα3)^(mα3)) . _β^β + (_m^m Overscript[Γ, _] _ (mαβ)^(mαβ)) . _3^3 == 0

Overscript[Γ, _] _ (3αβ)^(3αβ) + Overscript[Γ, _] _ (βα3)^(βα3) == 0

Taking into account the symmetries of the Christoffel symbol :
Reminder : in the present notation, the two last indices are symmetrical, while the first is the tensorial index (the notation in Flügge's book is different)

Overscript[Γ, _] _ (βα3)^(βα3) == -Overscript[Γ, _] _ (3αβ)^(3αβ) == Overscript[Γ, _] _ (β3α)^(β3α)

ed[red[3]].ed[red[3]]==1
PartialD[%[[1]],red[α]]/2==0
%//BasisDerivation[Γb,red@m][{e,red@3},red@α]
Print["     which gives:"]; res1=%//EvaluateDotProducts[e, g]
Print["     and,"]
res2=(res1[[1]]//SymmetrizeSlots[])==0
Print["     while,"]
ed[red[α]].ed[red[3]]==0
PartialD[%[[1]],red[3]]==0
%//BasisDerivation[Γb,red@m][{e,red@α},red@3]//BasisDerivation[Γb,red@m][{e,red@3},red@3]
%//EvaluateDotProducts[e, g]
res3=%[[1]];
Print["     or,"]
res4=(res3/.res2[[1]]→0)==0

_3^3 . _3^3 == 1

_3^3_ (, α) . _3^3 == 0

(_m^m Overscript[Γ, _] _ (mα3)^(mα3)) . _3^3 == 0

     which gives:

Overscript[Γ, _] _ (3α3)^(3α3) == 0

     and,

Overscript[Γ, _] _ (33α)^(33α) == 0

     while,

_α^α . _3^3 == 0

_3^3_ (, 3) . _α^α + _α^α_ (, 3) . _3^3 == 0

(_m^m Overscript[Γ, _] _ (m33)^(m33)) . _α^α + (_m^m Overscript[Γ, _] _ (m3α)^(m3α)) . _3^3 == 0

Overscript[Γ, _] _ (33α)^(33α) + Overscript[Γ, _] _ (α33)^(α33) == 0

     or,

Overscript[Γ, _] _ (α33)^(α33) == 0

Taking into account the symmetry of the indices,

(*8.2*)ResultFrame[res82 = 0 == res1[[1]] == res2[[1]] == res3[[1]] == res4[[1]]]

(*8.3*)
PartialD[ed[red[3]].ed[red[3]],red[3]]/2 == 0
%//BasisDerivation[Γb,red@m][{e,red@3},red@3]
ResultFrame[
  res83=%//EvaluateDotProducts[e, g]]

_3^3_ (, 3) . _3^3 == 0

(_m^m Overscript[Γ, _] _ (m33)^(m33)) . _3^3 == 0

      Overscript[Γ, _] _ (333)^(333) == 0      (8.3)

DeclareBaseIndices[Base3d];
eu[red[3]].eu[red[3]]==0
PartialD[-%[[1]],red[α]]/2==0
%//BasisDerivation[Γb,red@m][{e,red@3},red@α]
%//EvaluateDotProducts[e, g, False];
res=(%//EinsteinSum[])/.TensorValueRules[g]

_3^3 . _3^3 == 0

-_3^3_ (, α) . _3^3 == 0

-(-_m^m Overscript[Γ, _] _ (3αm)^(3αm)) . _3^3 == 0

Overscript[Γ, _] _ (3α3)^(3α3) == 0

(*8.4*)ResultFrame[res84 = res[[1]] == (res[[1]]//SymmetrizeSlots[]) == 0]

      Overscript[Γ, _] _ (3α3)^(3α3) == Overscript[Γ, _] _ (33α)^(33α) == 0      (8.4)

(*8.5*)
eu[red[3]].eu[red[3]]==0
PartialD[-%[[1]],red[3]]/2==0
%//BasisDerivation[Γb,red@m][{e,red@α},red@3]//BasisDerivation[Γb,red@m][{e,red@3},red@3]
%//EvaluateDotProducts[e, g, False]
ResultFrame[res85=(%//EinsteinSum[])/.TensorValueRules[g]]

_3^3 . _3^3 == 0

-_3^3_ (, 3) . _3^3 == 0

-(-_m^m Overscript[Γ, _] _ (33m)^(33m)) . _3^3 == 0

g_ (m3)^(m3) Overscript[Γ, _] _ (33m)^(33m) == 0

      Overscript[Γ, _] _ (333)^(333) == 0      (8.5)

To summarize :

In addition, because the metric tensor has the form (

g_ (11)^(11) g_ (12)^(12) 0
g_ (21)^(21) g_ (22)^(22) 0
0 0 1
),

We can now introduce these results in equations (5.2) and (5.3)

Restriction to the plane z = 0. The basis vectors in the tangent plane are now  a = e( z = 0 )

Line element in the surface :

"d ==" (d = d[red @ α] dxu[red @ α])

d == dx_α^α _α^α

"d.d ==" (d . (d/.α→ β)//LinearBreakout[Dot][d[_]])/.BasisDotProductRules[, a]

d.d == a_ (αβ)^(αβ) dx_α^α dx_β^β

The normal vector _ 3^3 being a unit vector has a direction which depends on x_ α^α :

(*8.9*)ResultFrame[res89 = PartialD[d[red @ 3], red @ α] == -bdd[red @ α, red @ β] u[red @ β]]

      _3^3_ (, α) == -b_ (αβ)^(αβ) _β^β      (8.9)

and,

%//KroneckerAbsorb[a]

_3^3_ (, α) . _β^β == -a_ (γβ)^(γβ) b_ (αγ)^(αγ)

_3^3_ (, α) . _β^β == -b_ (αβ)^(αβ)

The b_ (α  β)^(α  β)are the covariant components of the plane tensor, called the curvature tensor of the surface.
If we differentiate _ α^α._ 3^3== 0,

PartialD[d[red @ α] . d[red @ 3], red @ β] == 0 (*8.1*)

ResultFrame[res810 = %/.PartialD[d[red @ 3], red @ β] . d[red @ α] → -bdd[red @ β, red @ α]]

_3^3_ (, β) . _α^α + _α^α_ (, β) . _3^3 == 0

      _α^α_ (, β) . _3^3 - b_ (βα)^(βα) == 0      (8.10)

Using the result that the covariant derivative of the basis vector _ α^α is zero, in the z=0 plane :

%//CovariantDSimplify[, _, _]

rule = Solve[%, PartialD[d[red @ α], red @ β]][[1]] (*8.11*)

ResultFrame[res811 = PartialD[d[red[α]], red[β]] == (PartialD[d[red[α]], red[β]]/.rule) <br />]

CovariantDSimplify warning : the present dimension is NDim = 3: check if the basis or the metric tensor are correct!

0 == _α^α_ (, β) - _3^3 Γ_ (3αβ)^(3αβ) - _γ^γ Γ_ (γαβ)^(γαβ)

{_α^α_ (, β) →_3^3 Γ_ (3αβ)^(3αβ) + _γ^γ Γ_ (γαβ)^(γαβ)}

res81b = (res81/.Γb→Γ) <br />(*8.12*)

-b_ (βα)^(βα) + Γ_ (3αβ)^(3αβ) == 0

TensorSymmetry[b, 2] = Symmetric[1, 2] ;

To summarize :

We can also introduce the mixed and contravariant components,

b_ (αβ)^(αβ) == a_ (γα)^(γα) b_ (γβ)^(γβ)

b_ (αβ)^(αβ) == a_ (γβ)^(γβ) b_ (αγ)^(αγ)

so that, from (8.12),

and from (8.9),

(*8.14*)ResultFrame[res814 = res89//UpDownSwap[red @ β]]

      _3^3_ (, α) == -b_ (αβ)^(αβ) _β^β      (8.14)

Infinitesimal displacement of the normal vector _ 3^3

and,

d_3^3 . d == d_3^3 . (dx_α^α _α^α) == -b_ (αβ)^(αβ) dx_α^α dx_β^β

Note : In differential geometry, the coefficients b_ (1  1)^(1  1), b_ (1  2)^(1  2)= b_ (2  1)^(2  1), b_ (2  2)^(2  2) are respectively denoted  E, F, G.

If we suppose that we make an infinitesimal displacement dx_ 1^1 _ 1^1 along x_ 1^1, and that only b_ (1  1)^(1  1) is nonzero, then d_ 3^3 is given by,

dd[red @ 3] == PartialD[d[red @ 3], red @ 1] dxu[red @ 1] == -bud[red @ 1, red @ 1] d[red @ 1] dxu[red @ 1]

d_3^3 == _3^3_ (, 1) dx_1^1 == -b_ (11)^(11) dx_1^1 _1^1

[Graphics:HTMLFiles/index_190.gif]

[Graphics:HTMLFiles/index_191.gif]

Figure 8.2  Visualization of the curvature components..

As | _ 3^3| = 1,  | d_ 3^3| is equal to the angle dφ of rotation of the normal from A to B, along x_ 1^1.
The curvature of the surface in this direction is then given by (see figure (8.2a)),

         dφ/ds == {d_ 3^3}/({_ 1^1} dx_ 1^1) == {b_ (1  1)^(1  1)}

If we suppose now that we make an infinitesimal displacement dx_ 1^1 _ 1^1 along x_ 1^1, and that only b_ (2  1)^(2  1) is nonzero, then d_ 3^3 is given by,

dd[red @ 3] == PartialD[d[red @ 3], red @ 1] dxu[red @ 1] == -bud[red @ 2, red @ 1] d[red @ 2] dxu[red @ 1]

d_3^3 == _3^3_ (, 1) dx_1^1 == -b_ (21)^(21) dx_1^1 _2^2

As shown in figure (8.2b), dψ/dscorresponds to the twist of the surface :

         dψ/ds == {d_ 3^3}/({_ 1^1} dx_ 1^1) == ({b_ (2  1)^(2  1)} {_ 2^2})/{_ 1^1}

and if {_ 1^1}={_ 2^2}, then {b_ (2  1)^(2  1)}={b_ (1  2)^(1  2)} is equal to the twist.  If {_ 1^1}{_ 2^2}, then ({b_ (2  1)^(2  1)} {_ 2^2})/{_ 1^1}=({b_ (1  2)^(1  2)} {_ 1^1})/{_ 2^2} is equal to the twist.

defaultD = SetDerivativeSymbols[{",", ";", "", "", "D", "d", ""}] ;

Scalar invariants

DeclareBaseIndices[Base2d] ;

There are two such invariants :

The mean curvature :

(*8.15*)ResultFrame[res815 = bud[red @ α, red @ α] == (bud[red @ α, red @ α]//EinsteinSum[])   ]

      b_ (αα)^(αα) == b_ (11)^(11) + b_ (22)^(22)       (8.15)

The Gaussian curvature :

It corresponds to the determinant b = det[b_ (α  β)^(α  β)], or in a tensorial invariant form,

1/2bud[red @ α, red @ β] bud[red @ γ, red @ δ] euu[red @ β, red @ δ] edd[red @ α, red @ γ]

%//FullLeviCivitaExpand[e, g]//Expand//KroneckerAbsorb[g] (*8.16*)

ResultFrame[res816 = Tensor[red @ b] == (bred$ = %//SumExpansion[{red @ β, red @ δ, red @ α, red @ γ}, {1, 2}]) ]

1/2 b_ (αβ)^(αβ) b_ (γδ)^(γδ) e_ (αγ)^(αγ) e_ (βδ)^(βδ)

-1/2 b_ (αγ)^(αγ) b_ (γα)^(γα) + 1/2 b_ (αα)^(αα) b_ (γγ)^(γγ)

      b == -b_ (12)^(12) b_ (21)^(21) + b_ (11)^(11) b_ (22)^(22)       (8.16)

Tensor[red[b]] == -bud[red[1], red[2]] bud[red[2], red[1]]+bud[red[1],red[1]] bud[red[2], red[2]]

b == -b_ (12)^(12) b_ (21)^(21) + b_ (11)^(11) b_ (22)^(22)

We can of course construct another invariant, but it is not independent of the others :

bud[red @ α, red @ β] bud[red @ β, red @ α] ==  (inv3 = bud[red @ α, red @ β] bud[red @ β, red @ α]//EinsteinSum[])

b_ (αβ)^(αβ) b_ (βα)^(βα) == (b_ (11)^(11))^2 + 2 b_ (12)^(12) b_ (21)^(21) + (b_ (22)^(22))^2

bud[red @ α, red @ α]^2 == (Cur2 = (bud[red @ α, red @ α]//EinsteinSum[])^2 //Expand)

(b_ (αα)^(αα))^2 == (b_ (11)^(11))^2 + 2 b_ (11)^(11) b_ (22)^(22) + (b_ (22)^(22))^2

b_ (αβ)^(αβ) b_ (βα)^(βα) is equal to  (b_ (α  α)^(α  α))^2- 2b :

Cur2 - 2bred$//Simplify

(b_ (11)^(11))^2 + 2 b_ (12)^(12) b_ (21)^(21) + (b_ (22)^(22))^2

Covariant Derivative

Covariant Derivative

In chapter 5, we have recalled the notion of covariant derivatives. Now we want to separate the behavior on the surfaces from its three dimensional behavior.

DeclareBaseIndices[Base3d] ;

" =="  == (//PartialSum[red @ 3, {red @ α}])

"or   ==" (//UpDownSwap[red @ i]) == (//UpDownSwap[red @ i]//PartialSum[red @ 3, {red @ α}])

 == u_i^i _i^i == u_3^3 _3^3 + u_α^α _α^α

or   == u_i^i _i^i == u_3^3 _3^3 + u_α^α _α^α

Using (5.7) where we derive with respect to x_ β^β, and (5.3),

SetScalarSingleCovariantD[True]

(*8.17*)
ResultFrame[
res817=CovariantD[Tensor["u"],red[β]]==(res=CovariantD[ud[red@i],red@β] au[red@i])==(res//PartialSum[red@3,{red@α}])
]

res == (PartialSum[red @ 3, {red @ γ}]/@res//ExpandCovariantD[labs0, red @ k]//PartialDToDif)

res1 = (d[red @ 3] . res//EvaluateDotProducts[, a]) == d[red @ 3] . %[[2]]//EvaluateDotProducts[, a]//PartialSum[red @ 3, {red @ γ}]//SymmetrizeSlots[]

u_i^i_ (; β) _i^i == _i^i (u_i^i_ (, β) - u_k^k Γ_ (kβi)^(kβi))

u_3^3_ (; β) == u_3^3_ (, β) - u_3^3 Γ_ (33β)^(33β) - u_γ^γ Γ_ (γ3β)^(γ3β)

u_α^α_ (; β) == u_α^α_ (, β) - u_3^3 Γ_ (3αβ)^(3αβ) - u_γ^γ Γ_ (γαβ)^(γαβ)

Using the above conditions on the Christoffel symbols, we have the rules :

ruled1 = res1/.Equal→Rule//ChrisSymbb[b, Γ, red]

ruled2 = res2/.Equal→Rule//ChrisSymbb[b, Γ, red]

u_3^3_ (; β) →u_3^3_ (, β) + b_ (γβ)^(γβ) u_γ^γ

u_α^α_ (; β) →u_α^α_ (, β) - b_ (αβ)^(αβ) u_3^3 - u_γ^γ Γ_ (γαβ)^(γαβ)

Similarly to the three dimensional case, we define a covariant derivative on the surface,

Notation for the two dimensional covariant derivative :  CovariantD2d[expr, k], the derivative of u_α, is noted u_ (α  |  β)^(α  |  β).

Cd2dRule = u_α_^α__ (, β_) - u_γ_^γ_ Γ_ (γ_α_β_)^(γ_α_β_) →u_α^α_ (| β)

u_α_^α__ (, β_) - u_γ_^γ_ Γ_ (γ_α_β_)^(γ_α_β_) →u_α^α_ (| β)

so that the first covariant derivatives  are,

(*8.18*)ResultFrame[res818 = {ruled1, ruled2d = ruled2/.Cd2dRule}//TableForm]

Equation (8.17) may then be written,

res = res817/.ruled1/.ruled2d(*8.19*)

ResultFrame[res819 = res[[1]] == (res[[3]]/.γ→α//ExpandCovariantD2d[labs0, red @ γ]//PartialDToDif//SymmetrizeSlots[]//Simplify)]

In a similar manner, the covariant derivative of u_ α^α gives ( u_3^3= u_3^3),

(*8.2*)ResultFrame[res820 = ruled2d//RaiseIndex[red @ α, red @ α]//RaiseIndex[red @ 3, red @ 3]//SymmetrizeSlots[] ]

      u_α^α_ (; β) →u_α^α_ (| β) - b_ (αβ)^(αβ) u_3^3      (8.20)

Similarly we would find,

ruleu2 = CovariantD[uu[red @ 3], red[β]] →bdd[red[γ], red[β]] uu[red @ γ] + PartialD[uu[red @ 3], red[β]]

u_α^α_ (; β) →u_α^α_ (, β) - b_ (αβ)^(αβ) u_3^3 + u_γ^γ Γ_ (αβγ)^(αβγ)

u_3^3_ (; β) →u_3^3_ (, β) + b_ (γβ)^(γβ) u_γ^γ

leading to an alternative form for (8.19)

(CovariantD[Tensor[""], red[β]] == (res = CovariantD[uu[red @ i], red @ β] d[red @ i]) == (res//PartialSum[red @ 3, {red @ α}])/.res820) (*8.21*)

ResultFrame[res821 = CovariantD[Tensor[""], red[β]] ==  ((res//PartialSum[red @ 3, {red @ α}])/.ruleu1/.ruleu2)]

For points in the vicinity of the middle surface, we can consider a derivative _ (,  3)^(,  3)

In the case when u is a plane vector (u_ 3^3= 0) covariant derivatives in 2d and in 3d become identical ( ; ≡ | ), while (8.21 becomes) :

Similar formula can be derived for tensors. For example with a tensor A_ (i  j)^(i  j), for which we restrict ourself to plane tensor A_ (3  β)^(3  β)= A_ (α  3)^(α  3)= A_ (3  3)^(3  3)= 0,

Note : ExpandCovariantD does not accept particular components (here i = 3), so that we have to work with arbitrary  i , and then to particularize to   i 3:

res = CovariantD[Auu[red @ α, red @ i], red @ γ] == (CovariantD[Auu[red @ α, red @ i], red @ γ]//ExpandCovariantD[labs0, red @ δ]//PartialDToDif) ;

res/.i→3

%[[1]] == %[[2, 2]]//ChrisSymbb[b, Γ, red]

A_ (α3)^(α3) _ (; γ) == A_ (αδ)^(αδ) b_ (γδ)^(γδ)

res = CovariantD[Auu[red @ i, red @ β], red @ γ] == (CovariantD[Auu[red @ i, red @ β], red @ γ]//ExpandCovariantD[labs0, red @ δ]//PartialDToDif) ;

res/.i→3

%[[1]] == %[[2, 2]]//ChrisSymbb[b, Γ, red]

A_ (3β)^(3β) _ (; γ) == A_ (δβ)^(δβ) b_ (γδ)^(γδ)

while,

CovariantD[Auu[red @ 3, red @ 3], red @ γ] == PartialD[Auu[red @ 3, red @ 3], red @ γ] == 0

A_ (33)^(33) _ (; γ) == A_ (33)^(33) _ (, γ) == 0

and the second covariant derivatives  are,

These results can be used when calculating the second derivatives of the basis vectors _ α^α.  From (8.11)

PartialD[d[red @ α], red @ β] == (PartialD[d[red @ α], red @ β]/.rule//ChrisSymbb[b, Γ, red])/.σ→ ρ

PartialD[%[[1]], red @ δ] == (PartialD[%[[2]], red @ δ]/.rule//ChrisSymbb[b, Γ, red]//Expand)

res = %[[1]] == Factor[ %[[2, {1, 4}]]] + Factor[ %[[2, {3, 5}]] + ( %[[2, {2}]]/.ρ→σ)]

_α^α_ (, β) == b_ (αβ)^(αβ) _3^3 + _ρ^ρ Γ_ (ραβ)^(ραβ)

The last expression is also equal to _α^α_ (, δβ)

res[[2]] == (res[[2]]/.{β→ δ, δ→ β})

res3 = Coefficient[%[[1]], d[red @ 3]] == Coefficient[%[[2]], d[red @ 3]]

resσ = Coefficient[%%[[1]], d[red @ σ]] - Coefficient[%%[[2]], d[red @ σ]] == 0

Using the explicit expression for the derivative of a tensor (obtained above),

ruleb = (res[[1]]/.{α→α_, β→β_, γ→γ_}) → (res[[2]]/.δ→μ)

(*8.24*)ResultFrame[ (res824 = {res = (res3/.ruleb//SymmetrizeSlots[]//SumExpansion[red @ μ, red @ ρ]//FullSimplify),  (RaiseIndex[red @ α, red @ α]/@res)})//TableForm]

These equalities are two tensorial forms of the Gauss-Codazzi relations in differential geometry.

Comparison of the coefficients of _ σ^σ gives similarly

resσ

which contains a Riemann-Christoffel symbol defined by the following rule (see equation (5.6)),

RCrule[red@α_,red@β_,red@σ_,red@δ_,red@ρ_] :=
Γudd[red@ρ,red@α,red@β]Γudd[red@σ,red@δ,red@ρ]-Γudd[red@ρ,red@α,red@δ]*Γudd[red@σ,red@β,red@ρ]-PartialD[Γudd[red@σ,red@α,red@δ],red@β]+PartialD[Γudd[red@σ,red@α,red@β],red@δ] → Ruddd[red@σ,red@α,red@δ,red@β]

ResultFrame[res825 = {resu = %[[1, 3]] == ( %[[1, 3]]/.Solve[%, %[[1, 3]]][[1]]), <br />resd = resu//LowerIndex[red @ δ, red @ δ]}//TableForm]

We can simplify even more the last formula

resd

%[[1]] == Factor[%[[2]] ]

res = %[[1]] == Factor[%[[2]] ]

Using the identity,

a_ (νμ)^(νμ) a_ (ρλ)^(ρλ) - a_ (νλ)^(νλ) a_ (ρμ)^(ρμ) →e_ (μλ)^(μλ) e_ (νρ)^(νρ)

we find

(*8.26*)ResultFrame[res826 = res/.rule//MetricSimplify[a] ]

At this step, we can introduce the Gaussian curvature b via the following equality,

res = red @ b edd[red @ α, red @ δ] == bud[red @ λ, red @ α] bud[red @ μ, red @ δ] edd[red @ λ, red @ μ]

b e_ (αδ)^(αδ) == b_ (λα)^(λα) b_ (μδ)^(μδ) e_ (λμ)^(λμ)

Verification of this relation, by expanding the terms :

DeclareBaseIndices[Base2d] ;

res//LeviCivitaSimplify[e, ε][a, red]//EinsteinSum[]//ExpandAll//ArrayExpansion[red @ α, red @ δ] ;

%/.PermutationSymbolRule[ε]/.{red @ b→bud[red @ 1, red @ 1] bud[red @ 2, red @ 2] - bud[red @ 1, red @ 2] bud[red @ 2, red @ 1]}//FullSimplify

{{True, True}, {True, True}}

so that (8.26) R_ (δ  α  β  γ)^(δ  α  β  γ)==-b_ (λ  α)^(λ  α) b_ (μ  δ)^(μ  δ) e_ (γ  β)^(γ  β) e_ (μ  λ)^(μ  λ) becomes,

Equation (8.27) shows immediately all the symmetries of the 2d Riemann-Christoffel symbol : Antisymmetry with respect to the two first and between the two last symbols, symmetry between the two first and the two last symbols.

If R_ (δ  α  β  γ)^(δ  α  β  γ)≠ 0, then u_α^α_ (| βγ)u_α^α_ (| γβ),  and we can calculate the difference :

For "normal" tensors, the partial derivatives commute :

PartialD[Tensor[u__], {l__}] := If[{l} =!= Sort[{l}], PartialD[Tensor[u], Sort[{l}]]]

res = %%[[1]] - %[[1]] == ( %%[[2]] - %[[2]]//SymmetricStandardOrder[Γ, {2, 3}]//SymmetricStandardOrder[u, {2, 3}]//FullSimplify)

Using the definition of the Riemann-Christoffel symbol and relation (8.26),

res[[1]] == res[[2, 1]] + ( res[[2, 2]]/.ρ→δ) + (res[[2, 3]] + ( res[[2, 4]]/.{δ→ρ, ρ→δ})//Simplify) (*8.28*)

In the next chapter, we shall need a similar relation for the second derivative of a symmetric, two dimensional tensor A_ (δ  α)^(δ  α).

ClearTensorShortcuts[{{, , d, u, v, x, dx}, 1}, {{g, a, b, ε, e, eb, ℰ, ℋ, A}, 2}, {{e, Γ, Γb}, 3}, {{R}, 4}] ;


Created by Mathematica  (November 27, 2007) Valid XHTML 1.1!