9. Theory of Shells

Initialization

Needs["TensorCalculus4`Tensorial`"]

Needs["TContinuumMechanics2`TContinuumMechanics`"]

Needs["DrawGraphics`DrawingMaster`"]

numequ = 1 ;

SetScalarSingleCovariantD[True]

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[ah, OverHat[a]]

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)]

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
Overscript[a,^] deformed metric tensor
Overscript[b,^] curvature deformed tensor

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

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

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

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

DeclareBaseIndices[Base3d]

Shell Geometry

Shell Geometry

A point B on a shell of uniform thickness h, is defined by its coordinates {x_ α^α,x_ 3^3}. The coordinate x_ 3^3=z normal to the surface is counted from its middle, so that the outer faces are at z = ±h/2. We want to express following the preceding chapter, all the quantities associated with the point B like _ α^α,g_ (α  β)^(α  β),Γ_ (α  β  γ)^(α  β  γ), etc..., in terms of the corresponding quantities _ α^α,a_ (α  β)^(α  β),Κ_ (α  β  γ)^(α  β  γ)associated with the midsurface point A [x_ α^α,0] (figure below). The points C and D  have the same coordinates x_ α^α+((dx) _ α)^α, so that the vectors AC and BD  in the planes have the same components ((dx) _ α)^α but not the same  _ α^α and _ α^α.

[Graphics:HTMLFiles/index_58.gif]

Figure 9.1 Section through a shell.

Starting from

 ==  + z d[red @ 3]

%//CoordinatesToTensors[{x, y, z}, x, red]

 ==  + z _3^3

 ==  + x_3^3 _3^3

differentiating with respect to α,

PartialD[Tensor[], red @ α] == PartialD[Tensor[] + z d[red @ 3], red @ α]

_ (, α) == _ (, α) + z _3^3_ (, α)

and using (8.12)

with,

(*9.2*)ResultFrame[res92 = μud[red @ γ, red @ α] == aud[red @ γ, red @ α] - z bud[red @ γ, red @ α]]

We have defined the tensor μ_ (γ  α)^(γ  α) which relates the base vectors at points A and B.  To obtain a similar relation between the contravariant quantities, we try,

(*9.3*)ResultFrame[res93 = u[red @ α] == λud[red @ α, red @ γ] u[red @ γ]]

      _α^α == _γ^γ λ_ (αγ)^(αγ)       (9.3)

Then,

u[red @ β] . d[red @ δ] == ( λud[red @ β, red @ γ] u[red @ γ]) . (μud[red @ ρ, red @ δ] d[red @ ρ])

%//EvaluateDotProducts[, g]//EvaluateDotProducts[, a] ;

%[[2]]/.{λ→μ, μ→λ} ; (*9.4*)

ResultFrame[res94 = %%[[1]] == %%[[2]] == %]

_β^β . _δ^δ == (_γ^γ λ_ (βγ)^(βγ)) . (_ρ^ρ μ_ (ρδ)^(ρδ))

which allows to calculate the λ_ (β  α)^(β  α). As they are fractions of a polynomial in z we expand  λ_ (β  α)^(β  α) as a power expansion in z up to quadratic terms :

λ_ (βα)^(βα) == A_ (βα)^(βα) + z B_ (βα)^(βα) + z^2 C_ (βα)^(βα)

%[[1]] - %[[2]] == 0

rul[red @ β_, red @ δ_] = Solve[CoefficientList[%[[1]], z] == 0, { Aud[red @ β, red @ δ], Bud[red @ β, red @ δ], Cud[red @ β, red @ δ]}][[1]]

r1[red @ β_, red @ α_] = rul[red @ β, red @ α][[1]] ;

r2[red @ β_, red @ α_] = rul[red @ β, red @ α][[2]]/.rul[red @ β, red @ ρ][[1]]//MetricSimplify[g] ;

r3[red @ β_, red @ α_] = rul[red @ β, red @ α][[3]]/.r2[red @ β, red @ ρ] ; (*9.5*)

Now, from the definition of the metric tensor,

and also,

      _α^α . _β^β == μ_ (βα)^(βα)       (9.8)

      _α^α . _β^β == λ_ (αβ)^(αβ)       (9.9)

Other formula involving the important tensors μ_ (β  α)^(β  α) and λ_ (α  β)^(α  β)will be needed in the following :
By differentiation of (9.4)

HoldCovariantD2d[#, red @ γ] &/@res94

%//ReleaseHold

%//CovariantDSimplify[g]

Note that the 3d metric g tensor is correctly used here, as its submatrice in the 2d space is identical to the metric tensor a.

We can expand μ_ (αβ)^(αβ) _ (| γ), and use the symmetry (8.24) (Gauss-Codazzi's relations) and (9.2) to write,

We shall also need the determinant of μ_ (β  α)^(β  α) :

DeclareBaseIndices[Base2d] ;

μud[red @ α, red @ β]//ArrayExpansion[red @ α, red @ β] ;

red @ μ == (Det[μud[red @ α, red @ β]]//HoldOp[Det]) == Det[%]

μ == Det[μ_ (αβ)^(αβ)] == -μ_ (12)^(12) μ_ (21)^(21) + μ_ (11)^(11) μ_ (22)^(22)

Explicitely, using equ.(9.2) :

res92[[2]]

%//ArrayExpansion[red @ α, red @ γ]//MetricSimplify[a]

μdet = Collect[Det[%], z]

a_ (γα)^(γα) - z b_ (γα)^(γα)

{{1 - z b_ (11)^(11), -z b_ (21)^(21)}, {-z b_ (12)^(12), 1 - z b_ (22)^(22)}}

1 + z (-b_ (11)^(11) - b_ (22)^(22)) + z^2 (-b_ (12)^(12) b_ (21)^(21) + b_ (11)^(11) b_ (22)^(22))

Or introducing the Gaussian curvature b and the mean curvature b_ (α  α)^(α  α) :

bud[red @ α, red @ β]//ArrayExpansion[red @ α, red @ β] ;

red @ b == ( bdet = Det[%]) (*9.11*)

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

      μ == Det[μ_ (βα)^(βα)] == 1 + z^2 b - z b_ (αα)^(αα)       (9.11)

(*9.13*)ResultFrame[res913 = ((res[[1]]//FullLeviCivitaExpand[e, a])/.{adu[δ_, δ_] →NDim}) == res[[2]]]

CovariantD2d[#, red @ λ] &/@ res913//CovariantDSimplify[, a, e]//ExpandAll(*9.14*)

ResultFrame[res914 = %[[1]]/2 == %[[2, 1]]/2 + (%[[2, 2]]/2/.{α→ β, β→α, γ→δ, δ→γ})//Simplify//LeviCivitaOrder[e]]

Now, from (9.4) and (9.11)

res94/.{β→δ, ρ→β, δ→ρ}

Times[λud[red @ β, red @ ρ], #] &/@res912(*9.15*)

ResultFrame[res915 = %/.%%[[3]] → %%[[1]]//MetricSimplify[g]]

g_ (δρ)^(δρ) == λ_ (δβ)^(δβ) μ_ (βρ)^(βρ) == λ_ (βρ)^(βρ) μ_ (δβ)^(δβ)

Together with (9.13) gives :

Times[#] &/@res915/.{ρ→δ, β→ρ}//LeviCivitaOrder[e]

(res914/.{%[[2]] →%[[1]]}//FullLeviCivitaExpand[e, g])/.{gdu[δ_, δ_] →NDim} (*9.16*)

ResultFrame[res916 = %[[1]] == (%[[2]]//MetricSimplify[g])]

μ e_ (αρ)^(αρ) λ_ (ρδ)^(ρδ) == e_ (γδ)^(γδ) μ_ (γα)^(γα)

2 (μ) _ (, λ) == 2 μ_ (δβ)^(δβ) _ (| λ) μ g_ (ρβ)^(ρβ) λ_ (ρδ)^(ρδ)

while for the derivative of the determinant μ with respect to the coordinate normal to the midsurface. Starting from (9.13) :

res = res914/.{λ→3, HoldCovariantD2d:→CovariantD}

2 (μ) _ (, 3) == 2 μ_ (δβ)^(δβ) _ (; 3) e_ (γδ)^(γδ) e_ (αβ)^(αβ) μ_ (γα)^(γα)

and using (9.14) and (9.2)

res915/.{ρ→δ, β→γ}

res1 = res/.{%[[2]] →%[[1]]}

μ e_ (αγ)^(αγ) λ_ (γδ)^(γδ) == e_ (γδ)^(γδ) μ_ (γα)^(γα)

2 (μ) _ (, 3) == 2 μ_ (δβ)^(δβ) _ (; 3) μ e_ (αγ)^(αγ) e_ (αβ)^(αβ) λ_ (γδ)^(γδ)

In Tensorial 4, derivation with respect to a particular coordinate is not expanded (so we use /.{red@3→red@z}/.{red@z→red@3} to allow it).

DeclareBaseIndices[Base3d] ;

res92x = res92//CoordinatesToTensors[{x, y, z}, x, red]

DeclareBaseIndices[Base2d] ;

μ_ (γα)^(γα) == a_ (γα)^(γα) - b_ (γα)^(γα) x_3^3

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

μ_ (γα)^(γα) _ (; 3) == -b_ (γα)^(γα)

      2 (μ) _ (, 3) == -2 μ b_ (δγ)^(δγ) λ_ (γδ)^(γδ)       (9.17)

Expressions for the Christoffel symbols Κ_ (α  β  γ)^(α  β  γ) and Κ_ (γ  α  β)^(γ  α  β), and the "permutation tensor" ê_ (α  β)^(α  β) and ê_ (α  β)^(α  β) at point B of the above figure.
We use the expressions of chapter 5, for the Christoffel symbols, together with (9.1) and (9.3):

{(res91[[1]] →res91[[3]]/.γ→δ), (res93[[1]] →res93[[2]]/.{α→γ, γ→ρ})}

{_α^α→_δ^δ μ_ (δα)^(δα), _γ^γ→_ρ^ρ λ_ (γρ)^(γρ)}

res = PartialD[d[red @ α], red @ β] . u[red @ γ] ;

(res0 = (res//ChristoffeluSymbol[, Γb, ρ]//EvaluateDotProducts[, g])) == res

res0 == res/.{(res91[[1]] →res91[[3]]/.γ→δ), (res93[[1]] →res93[[2]]/.{α→γ, γ→ζ})}

res1 = %//ChristoffeluSymbol[, Γ, σ]//EvaluateDotProducts[, a]

Overscript[Γ, _] _ (γαβ)^(γαβ) == _α^α_ (, β) . _γ^γ

Then, with (9.10) and (9.4)

res2 = Times[λud[red @ γ, red @ ζ], #] &/@(res910a/.{α→ζ, β→α, γ→β})//ExpandAll

zero = (res2[[1]] - res2[[2]]) ;

res3 = res94/.{ρ→ζ, β→γ}

(*9.18*)ResultFrame[res918 = res1[[1]] == res1[[2]] + zero/.res3[[2]] →res3[[1]]//MetricSimplify[g]//SymmetrizeSlots[]//TensorSimplify]

Similarly, we obtain (don't forget that a_ (δ  3)^(δ  3) is zero because _ δ^δ is on the surface : we must add "False" in EvaluateDotProducts) ,

res = PartialD[d[red @ α], red @ β] . u[red @ 3]

_α^α_ (, β) . _3^3

Overscript[Γ, _] _ (3αβ)^(3αβ) == (_δ^δ_ (, β) μ_ (δα)^(δα)) . _3^3

and with (8.11) and (8.12)

(res1/.res811//ExpandAll//EvaluateDotProducts[, a, False])/.{adu[red @ γ, red @ 3] →0, adu[red @ 3, red @ 3] →1} ; <br />(*9.19*)

ResultFrame[res919 = %[[1]] == %[[2]] == (%[[2]]/.Γudd[red @ 3, red @ δ, red @ β] → bdd[red @ δ, red @ β])]

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

Then, with (8.9), (9.3) and _ 3^3=_ 3^3on z = 0,

res89 = (PartialD[d[red[3]], red[α_]]/.→) → -bdd[red[α], red[δ]] u[red[δ]] <br />

(res = PartialD[d[red @ 3], red @ β] . u[red @ α]) == (res1 = (res//ChristoffeluSymbol[, Γb, ρ]//EvaluateDotProducts[, g])) <br />(*9.2*)

ResultFrame[res920 = res1 == ((res/.res89/.res93[[1]] → res93[[2]])//EvaluateDotProducts[, a]//UpDownSwap[red @ δ])]

_3^3_ (, α_) → -b_ (αδ)^(αδ) _δ^δ

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

Introduction of the permutation tensor

d[red @ β] ×d[red @ 3] == ( d[red @ β] ×d[red @ 3]//CrossProductExpansion[, eb, δ])

%/.(res91[[1]] → res91[[3]]/.α→β)/.(res93[[1]] → res93[[2]]/.α→δ)/.d[red @ 3] →d[red @ 3]

(%[[1]]//LinearBreakout[Cross][d[_]]//CrossProductExpansion[, e, δ]) == (%[[2]]/.{γ→δ, δ→γ})

res = Coefficient[#, u[red @ δ]] &/@%

_β^β×_3^3 == Overscript[e, _] _ (β3δ)^(β3δ) _δ^δ

e_ (γ3δ)^(γ3δ) μ_ (γβ)^(γβ) == Overscript[e, _] _ (β3γ)^(β3γ) λ_ (γδ)^(γδ)

Now we use (9.4),

res94[[2]] → res94[[1]]/.{β→γ, ρ→δ, δ→α}

(Times[μud[red @ δ, red @ α], #] &/@res )/.%/.{γ→δ, δ→γ}//MetricSimplify[g]//LeviCivitaOrder[e]//LeviCivitaOrder[eb] (*9.21*)

ResultFrame[res921 = %/.eddd[red @ 3, i_, j_] →edd[i, j]/.ebddd[red @ 3, i_, j_] →ebdd[i, j]]

λ_ (γδ)^(γδ) μ_ (δα)^(δα) →g_ (γα)^(γα)

e_ (3γδ)^(3γδ) μ_ (γα)^(γα) μ_ (δβ)^(δβ) == Overscript[e, _] _ (3αβ)^(3αβ)

together with (9.12)

(*9.22*)ResultFrame[res922 = res921[[2]] == res921[[1]]/.res912[[2]] →res912[[1]]]

      Overscript[e, _] _ (αβ)^(αβ) == μ e_ (αβ)^(αβ)       (9.22)

Kinematics of Deformation

Kinematics of Deformation

After a deformation of the shell, a generic point at position r like B is transformed into Overscript[B,^] (figure below)

Overscript[,^] ==  + 

Overscript[,^] ==  + 

and for the corresponding point A on the middle surface,

Overscript[,^] ==  + 

Overscript[,^] ==  + 

The same coordinates are associated to each material point before and after deformation, but the corresponding basis vectors are deformed with the body, and we have,

[Graphics:HTMLFiles/index_224.gif]

Figure 9.2 Section through a shell before and after deformation.

Hypothesis : during the deformation, the normals are conserved. This means that after deformation, all the points which were on a normal to a point of the middle surface beforev deformation all remain on the same normal.  This leads to assume that,

ηdd[red @ 3, red @ α] == ηdd[red @ α, red @ 3] == 0

η_ (3α)^(3α) == η_ (α3)^(α3) == 0

Equation (6.2) gives the relation between strain and displacement (with the notations corresponding to the middle surface),

(*9.24*)ResultFrame[res924 = ηdd[red @ i, red @ j] == (η§dd[red @ i_, red @ j_] = 1/2 (CovariantD[vd[red @ i], red @ j] + CovariantD[vd[red @ j], red @ i])) ]

      η_ (ij)^(ij) == 1/2 (v_i^i_ (; j) + v_j^j_ (; i))       (9.24)

When we take i = α and j = 3, we have

so that the conservation of normals gives,

(*9.25*)ResultFrame[res925 = (res[[3, 2]]//SymmetricStandardOrder[Γb]) == 0//Simplify]

Another reasonable hypothesis is to consider that the length of the normal (shell thickness) does not vary. This is because the shell is thin and there is no stress σ_ (3  3)^(3  3) along the direction _ 3^3

vd[red @ 3] == ud[red @ 3] == Tensor[w]

v_3^3 == u_3^3 == w

Note that the shell is not in a state of plain strain, but rather of plain stress which includes the stress coming from the bending: the statement σ_ (3  3)^(3  3)= 0, must not be inserted in Hooke's law.
From (9.25) applied to the middle surface, using (8.13) allows to introduce the curvature tensor,

      w_ (, α) + u_α^α_ (, 3) == -2 b_ (βα)^(βα) u_β^β      (9.26)

Now we need to get â_ 3^3, the normal vector to the deformed shell element. From  Overscript[,^]==r+v, differentiated with respect to x_ 3^3, taking z = 0, and writing _ (,  3)^(,  3)= lim _ (,  3)^(,  3)

res1 = PartialD[Tensor[Overscript[,^]], red @ 3] == PartialD[Tensor[], red @ 3] + PartialD[Tensor[], red @ 3]

(Overscript[,^]) _ (, 3) == _ (, 3) + _ (, 3)

and with (8.22),

DeclareBaseIndices[Base3d] ; PartialD[Tensor[], red[3]] → (CovariantD[ud[red @ i], red @ 3] u[red @ i]//PartialSum[red @ 3, {red @ α}])

_ (, 3) →u_3^3_ (; 3) _3^3 + u_α^α_ (; 3) _α^α

but (see figure 9.2)  u_ 3^3= w does not depend on x_ 3^3so that  u_ (3  ;  3)^(3  ;  3)= 0, and

u_3^3_ (; 3) = 0 ;

%/.{PartialD[Tensor[Overscript[,^]], red @ 3] → hd[red @ 3], PartialD[Tensor[], red @ 3] → d[red @ 3]} ;

res2 = Plus[Times[-1, _3^3], #] &/@%

-_3^3 + Overscript[,^] _3^3 == (u_α^α_ (, 3) + b_ (γα)^(γα) u_γ^γ) _α^α

An alternate form can be derived using (9.26)

res926

w_ (, α) + u_α^α_ (, 3) == -2 b_ (βα)^(βα) u_β^β

(*9.27*)ResultFrame[res927 = res2[[1]] == (res2[[2]]/.res926[[1, 2]] → res926[[2]] - res926[[1, 1]]//TensorSimplify//Simplify)]

â_ 3^3and _ 3^3being unit vectors, â_ 3^3_ 3^3is the angle of rotation of the normal. It is a plane vector (decomposition on _ α^α), and w_ (,  α)^(,  α) are the components of a vector ω

SetScalarSingleCovariantD[True]

SetScalarSingleCovariantD[False]

ωd[red @ α] == PartialD[Tensor[w], red @ α] == CovariantD[ Tensor[w], red @ α] == CovariantD2d[ Tensor[w], red @ α]

ω_α^α == w_ (, α) == w_ (; α) == w_ (| α)

Note also that w_ (| αβ)==w_ (| βα)

Considering figure (9_2), we see that,

res1 = Overscript[,^] ==  +  == ( + /.→  + z d[red @ 3])

Overscript[,^] ==  +  ==  +  + z _3^3

and,

res2 = Overscript[,^] == Overscript[,^] + z hd[red @ 3] ==  +  + z hd[red @ 3]

Overscript[,^] == Overscript[,^] + z Overscript[,^] _3^3 ==  +  + z Overscript[,^] _3^3

so that,

On the other hand we have,

res1 =  == vd[red @ γ] u[red @ γ] + Tensor[w] u[red @ 3]

 == w _3^3 + v_γ^γ _γ^γ

Dot[d[red @ α], #] &/@res1

res2 = ((%//LinearBreakout[Dot][d[_], u[_]])/.BasisDotProductRules[, g]//MetricSimplify[g])/.gdu[red @ α, red @ 3] → 0

_α^α .  == _α^α . (w _3^3 + v_γ^γ _γ^γ)

_α^α .  == v_α^α

which, with (9.2) and (9.8), is equivalent to,

Solve[res92/.{γ→ β, α→ δ}, bud[red @ β, red @ δ]][[1]]

{(res98/.{β→δ})[[1]] → (res98/.{β→δ})[[2]] } <br /><br />(*9.31*)

ResultFrame[res931 = res930/.%/.%%//MetricSimplify[a]//Simplify]

{b_ (βδ)^(βδ) → (a_ (βδ)^(βδ) - μ_ (βδ)^(βδ))/z}

{_α^α . _δ^δ→μ_ (δα)^(δα)}

We want now to calculate the stress η_ (α  β)^(α  β) (from (9.24))

res924/.{i→α, j→β}

η_ (αβ)^(αβ) == 1/2 (v_α^α_ (; β) + v_β^β_ (; α))

and we need (5.3) in two dimensional space to explicit v_ (α  ;  β)^(α  ;  β)

CovariantD[vd[red @ α], red @ β]//ExpandCovariantD[labsz, red @ k] ;

Using now (9.18) and (9.19)

CovariantD[vd[red @ α], red @ β]//ExpandCovariantD[labs0, red @ γ]//SymmetricStandardOrder[Γ, {2, 3}] ;

( %//PartialDToDif) → CovariantD2d[vd[red @ α], red @ β]

res2 = res1/.%

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

Now we use the relation (9.31) to replace the v_ γ^γ on the right hand side :

This expression simplifies after introduction of relation (9.4)

rul94a = (res94[[3]] →res94[[1]])/.{ρ→γ, β→ξ, δ→ζ }

λ_ (γζ)^(γζ) μ_ (ξγ)^(ξγ) →g_ (ξζ)^(ξζ)

(*9.32*)ResultFrame[res932 = res3[[1]] == ( res3[[2]]/.{rul94a}//MetricSimplifyD[g])/.ζ→ξ]

By interchanging α and β we obtain η_ (α  β)^(α  β)

Strain of the middle surface E

We have made the basic assumption that the normals are conserved, so that the deformation of a shell element depends only on the deformation of the middle surface.  It is then possible to express η_ (α  β)^(α  β)in terms of the strain  of the middle surface and of its change of curvature.  The strain of the middle surface E, then corresponds to setting z = 0 in (9.33). When z = 0, the various μ_ (ξ  α)^(ξ  α) become delta functions (see equ.(9.2)).

(*9.34*)ResultFrame[res934 = res933/.{η→ℰ, z→0}//CovariantDSimplify[μ]//MetricSimplifyD[μ]//SymmetricStandardOrder[b] ]

The quantities a, ah, b, Overscript[b,^], w, η, E are symmetrical with respect to their indices. κ_ (α  β)^(α  β) below is not.

Metric tensor for the deformed middle surface :

From equations (2.1) and the relation ℰ_ (ij)^(ij)= γ_ (ij)^(ij)/2, and using the present notations, we can define the metric tensor for the deformed middle surface by,

(*9.35*)ResultFrame[res935 = ahdd[red @ α, red @ β] == add[red @ α, red @ β] + 2ℰdd[red @ α, red @ β]]

Curvature tensor for the deformed middle surface :

Note : As the head of Overscript[b,^] is not a Symbol, we have used the symbol bh as an alias in the Inputs (via TensorLabelFormat[bh,OverHat[b]]) .

We shall consider the curvature change κ_ (αβ)^(αβ)==-b_ (αβ)^(αβ)+Overscript[b,^] _ (αβ)^(αβ) because in this case the metric tensor is independent on the deformation.

Then we have, using Flügge's notation,

res = %[[1]] == %[[2]] == %[[3, 2]] + (%[[3, 1]]//MetricSimplify[a])

res[[1]] == (res[[3]]/.Solve[(res935/.{α→ γ}), add[red @ γ, red @ β]][[1]])//ExpandAll//MetricSimplify[ah]

res1 = %//SymmetricStandardOrder[bh]

and if we neglect a term quadratic in the strain, we may write,

(*9.37*)ResultFrame[res937 = (res1[[1]] == res1[[2, 1]] + res1[[2, 2]] + (res1[[2, 3]]/.bh→ b))]

This expression shows that κ_ (α  β)^(α  β)≠  Overscript[b,^] _ (α  β)^(α  β)- b_ (α  β)^(α  β).
We need to calculate now Overscript[b,^] _ (α  β)^(α  β). From equ. (8.9) applied to the deformed middle surface,

True

and if we differentiate (9.27) and use (8.23) we can explicit  â_ (3  ,  α)^(3  ,  α)

res927/.{α→γ, β→δ}

-_3^3 + Overscript[,^] _3^3 == -(w_ (, γ) + b_ (δγ)^(δγ) u_δ^δ) _γ^γ

_ (, α) == b_ (γα)^(γα) v_γ^γ _3^3 + v_γ^γ_ (| α) _γ^γ

so that when v becomes _ γ^γ(we replace here a symbol v by a tensor _ γ^γ, so that we will need to apply UnnestTensor to expand the left hand side):

Print["or equivalently, as shown above:"]

res = %%/.PartialD[Tensor[w], red @ α_] →CovariantD2d[ Tensor[w], red @ α]

or equivalently, as shown above:

Remember that (-w_ (| γ) - b_ (δγ)^(δγ) u_δ^δ) _ (| α) is intentionally not expanded
We can expand this term using :

ReleaseHold/@res

Deformed base vector Overscript[,^] _α^α

From its definition, together with equation (8.19),

res819 = PartialD[Tensor[u],red[β]]==(bud[red[γ],red[β]]ud[red[γ]]+PartialD[ud[red[3]],red[β]])au[red[3]]+au[red[α]](-bdd[red[β],red[α]]ud[red[3]]+PartialD[ud[red[α]],red[β]]-ud[red[γ]]Γudd[red[γ],red[β],red[α]])

Overscript[,^] ==  +   (*  see Figure 9.2  *)

 hd[red @ β] == PartialD[Tensor[ ] + Tensor[], red @ β] == d[red @ β] + res819[[2]] ;

%/.(CovariantD[ud[red @ α], red @ β]//ExpandCovariantD[labs0, red @ γ]//PartialDToDif) → CovariantD2d[ud[red @ α], red @ β] ;

reshβ = %/.{ud[red @ 3] → Tensor[w], PartialD[ud[red @ 3], red @ β] → PartialD[Tensor[w], red @ β]}/.{α→ δ, γ→ τ}

Overscript[,^] ==  + 

Using the replacements of Overscript[,^] _3^3_ (, α)and of Overscript[,^] _β^β(via resâ3 and resâ3β  above), the cancellation of the covariant derivatives of basis vectors,
and equ. (8.9)  _3^3_ (, α)→-b_ (α  ρ)^(α  ρ) _ ρ^ρ,

Solve[res, Overscript[,^] _3^3_ (, α)][[1, 1]]

reshβ[[1]] →reshβ[[3]]

rul89 = {PartialD[Tensor[, {Void}, {red[3]}], red[α_]] → -Tensor[b, {Void, Void}, {red[α], red[ρ]}] Tensor[, {red[ρ]}, {Void}]}

{_3^3_ (, α_) → -b_ (αρ)^(αρ) _ρ^ρ}

In addition _ γ^γ and _ 3^3 are orthogonal : a_ (γ  3)^(γ  3) = 0,

res938[[1]] == res938[[2]]

res1 = %/.Solve[res, Overscript[,^] _3^3_ (, α)][[1]]/.reshβ[[1]] →reshβ[[3]]//LinearBreakout[Dot][Tensor[, __]]

Overscript[b,^] _ (αβ)^(αβ) == -Overscript[,^] _3^3_ (, α) . Overscript[,^] _β^β

in which we only conserve linear terms in the displacements

res1[[1]] == res1[[2, Range[1, 3]]] + res1[[2, 5]] + res1[[2, 7]]/.rul89

%//EvaluateDotProducts[, a]//SymmetricStandardOrder[a]//SymmetricStandardOrder[b]

%/.{auu[red @ 3, red @ δ] →0, auu[red @ 3, red @ γ] →0, aud[red @ 3, red @ β] →0, bud[red @ 3, red @ α] →0}

%//CovariantDSimplify[a]//ExpandAll//MetricSimplifyD[a]

%/.b_ (δβ)^(δβ) u_δ^δ→Tensor[b_ (δβ)^(δβ) u_δ^δ]//ReleaseHold//UnnestTensor

res = %[[1]] == (%[[2]]//MetricSimplifyD[a]//FullSimplify)

(*9.39*)ResultFrame[res939 = res]

From (9.37) we deduce now κ_ (α  β)^(α  β)

res = res937/.{res939[[1]] → res939[[2]]}//SymmetricStandardOrder[w]

We can expand equation (9.39) use (9.28) and replace ℰ_ (γ  β)^(γ  β)by its expression (9.34)

(res934[[1]]/2→res934[[2]]/2/.α→ γ)

(res/.%/.δ→γ)//ReleaseHold//ExpandAll<br />(*9.4*)

ResultFrame[res940 = %//SymmetricStandardOrder[b]]

ℰ_ (γβ)^(γβ) →1/2 (u_β^β_ (| γ) + u_γ^γ_ (| β) - 2 w b_ (γβ)^(γβ))

Note that due to the Codazzi equation (8.24) ( b_ (α  β  |  δ)^(α  β  |  δ)==b_ (α  δ  |  β)^(α  δ  |  β) and b_ (α  β  |  δ)^(α  β  |  δ)==b_ (α  δ  |  β)^(α  δ  |  β)) to property (9.28) and the dummy index in b_ (β  γ)^(β  γ) b_ (γ  α)^(γ  α), the indices α and β can be interchanged in the first, third, and the fifth terms.  This is not the case for the second and fourth terms, so that κ_ (α  β)^(α  β)κ_ (β  α)^(β  α).

Our purpose now is to express η_ (α  β)^(α  β) in terms of ℰ_ (α  β)^(α  β)and κ_ (α  β)^(α  β)

We expect that the rhs contains a factor z κ_ (γ  δ)^(γ  δ).
The fourth term (resA) already contains a factor z :

For the other terms we make use of equation (9.2),

rul92 = (res92[[1]]/.{γ→γ_, α→α_}) →res92[[2]]

μ_ (γ_α_)^(γ_α_) →a_ (γα)^(γα) - z b_ (γα)^(γα)

so that, the terms containing μ_ (γ_α_)^(γ_α_) _ (| β_) gives :

CovariantD2d[#, red @ β] &/@res92//CovariantDSimplify[, a, e] ;

rulA = (%[[1]]/.{γ→γ_, α→α_, β→β_}) →%[[2]]

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

μ_ (γ_α_)^(γ_α_) _ (| β_) → -z b_ (γα)^(γα) _ (| β)

We shall also need the following identity (an invariance by permutation of  b and μ) :

res3 = Collect[ (res2/.z→ 0/.rulA), z, FullSimplify]

we find another term with a factor z :

We call  res4  the term which does not contains the factor z,

res4 = Collect[(res3/.z→0), Tensor[w], FullSimplify]

First we consider the coefficient of w,

Coefficient[res4, Tensor[w]]/.rul92//MetricSimplify[a]//SymmetricStandardOrder[b] ;

%/.{(res92[[2, 1]]/.{γ→γ_, α→α_}) → res92[[1]] - res92[[2, 2]]}//Expand ;

(%[[1]]/.{γ→δ, δ→γ}) + %[[Range[2, 4]]]//SymmetricStandardOrder[b] ;

resC =  (Tensor[w] %)/.{bud[red @ γ, red @ ρ_] →bud[red @ γ, red @ ζ] aud[red @ ζ, red @ ρ]}//Simplify

Remains finally the following term in res4 to consider :

res = res4/.Tensor[w] → 0/.{ρ→γ, ξ→δ}//Expand ;

μ_ (γδ)^(γδ) (Coefficient[%, μ_ (γδ)^(γδ) ]/.rul92) ;

res = %//MetricSimplifyD[a]//Expand

Here we use equation (9.41):

res941[[1]] == res941[[4]]

equivalent to {μ→b,b→μ}

b_ (βγ)^(βγ) μ_ (αβ)^(αβ) == b_ (αβ)^(αβ) μ_ (βγ)^(βγ)

equivalent to {μ→b,b→μ}

We recognize in this expression the factor :

res940/.{γ→ρ, β→γ, α→δ}//FullSimplify ;

Therefore, we can write :

Solve[res1 == res0/.rulκ, η_ (αβ)^(αβ)][[1, 1]]/.Rule→Equal//ExpandAll ;

%[[1]] == Collect[(%[[2]]/. κ_ (δγ)^(δγ) :→ -2X/z), X]/.X→ -z/2 κ_ (δγ)^(δγ) ; (*9.42*)

ResultFrame[res942 = %[[1]] == %[[2, 1]] + (%[[2, 2]]//MetricSimplifyD[a])]

`` This equation shows that the strain η_ (α  β)^(α  β)and hence the stress  σ_ (α  β)^(α  β) only  depends  on the deformation of the middle surface and that our kinematic relations, in particular (9.33), will yield zero strain when the shell is subjected to a rigid body displacement ″

Stress Resultants and Equilibrium

Stress Resultants and Equilibrium

In a shell the stress systems of plates and slabs are combined. There is a membrane force tensor N_ (α  β)^(α  β)corresponding to the tension-and-shear of the plane slab and a moment tensor M_ (α  β)^(α  β), whose components are bending and twisting moments, and, as in a plate, it is inseparable from transverse shear forces Q_ α^α. Due to the curvature of the shell element, all these forces and moments, which contribute to the equilibrium of the shell element, interfere.

[Graphics:HTMLFiles/index_476.gif]

Figure 9.3 Section through a shell.

In this figure, we have selected an arbitrary line element ds==dx_ α^α _ α^α on the middle surface. The set of normals to this line element ds generates a section element of thickness h. Due to the curvature and twist of the surface, these normals are not really parallel, and even not in the same plane. This must be taken into account.
Inside this section element, we consider a subelement at distance z of the middle of height dz and length dr==dx_ γ^γ _ γ^γ (in yellow). Its area is

d == dz d×_3^3 == dz dx_β^β Overscript[e, _] _ (3αβ)^(3αβ) _α^α == dA_α^α _α^α

or,

res1 = Coefficient[#, u[red @ α]] &/@(res[[4]] == (res[[3]]/.ebddd[red @ 3, i_, j_] →ebdd[i, j]))

dA_α^α == dz dx_β^β Overscript[e, _] _ (αβ)^(αβ)

The vector dA has the direction of the outer normal (see the figure). Across the subelement, there is a force dF,

d == dFu[red @ δ] d[red @ δ] + dFu[red @ 3] d[red @ 3]

d == dF_3^3 _3^3 + dF_δ^δ _δ^δ

using the definition of the stress (4.1),

We first integrate the first term across the shell thickness h, using the fact that _ 3^3= _ 3^3.

Using now (9.22)

res3[[1]] == (res = res3[[4]]/.res922[[1]] →res922[[2]])

and the transverse shear force of the shell Q_ α^α(compare with equation (7.52a)),

which leads to,

(*9.45*)ResultFrame[res945 = res3[[1]] == - dxu[red @ β] edd[red @ α, red @ β] Qu[red @ α] d[red @ 3]]

      ∫ dF_3^3 _3^3 == -dx_β^β e_ (αβ)^(αβ) Q_α^α _3^3      (9.45)

Equation (9.43) differs from the corresponding definition for a plate (7.52) by the presence of the factor μ _^ which accounts for the curvature of the shell.

We can do the same treatment for the second term of (9.43). To express the result in the basis _ α^α, we use equation (9.1) :

we define here N_ (α  β)^(α  β)(compare with equation (7.52b)),

(*9.47*)ResultFrame[res947 = res3[[1]] == dxu[red @ β] edd[red @ α, red @ β] Nuu[red @ α, red @ δ] d[red @ δ]]

And finally the moment (lever arm z _ 3^3) of the force dF with respect to the center of the section is,

"∫" res2[[1]] == ((%[[3]]//LinearBreakout[Cross][d[_]]//CrossProductExpansion[, e, δ])/.eddd[red @ 3, i_, j_] →edd[i, j])

Again we define here M_ (α  β)^(α  β)(compare with equation (7.52c)),

and we have then,

The stresses resultants Q_ α^α, N_ (α  β)^(α  β), M_ (α  β)^(α  β)have to satisfy differential equations corresponding to the equilibrium of the shell. The treatment is very similar to that in chapter 7, equations

DeclareBaseIndices[Base3d] (*9.5*)

ResultFrame[res950 = (Xu[red @ γ] + CovariantD[σuu[red @ γ, red @ j], red @ j]//PartialSum[red @ 3, {red @ β}]) == 0]

The 3d covariant derivatives are taken at point B in figure 9.1.
We express these derivatives in terms of 2d covariant derivatives taken in the middle surface.
Starting with σ_ (γ  β  ;  β)^(γ  β  ;  β)gives,

CovariantD[σuu[red @ γ, red @ η], red @ η] == (CovariantD[σuu[red @ γ, red @ η], red @ η]//ExpandCovariantD[labsz, red @ i]//PartialDToDif)

res = (%/.red @ η→blue @ η//PartialSum[red @ 3, {red @ ρ}])/.blue @ η→red @ η//SymmetricStandardOrder[Γb, {2, 3}]

Remark : In the present version of PartialSum we have to use a specific flavor of index β (here blue) to avoid a partial sum also on β.

using (9.18),

(res918[[1]]/.{α→α_, β→β_, γ→γ_}) →res918[[2]]

With equation (8.23b) for the 2d covariant derivative we can simplify the above result :

Solve[res823b[[1]] == res823b[[2]], PartialD[σuu[red @ γ, red @ η], red @ η]][[1]]

res2/.%//ExpandAll//SymmetricStandardOrder[Γ, {2, 3}]//SymmetricStandardOrder[σ] ;

res = %[[1]] == (%[[2]]//Simplify)

As it will be useful later, we shall multiply this equation by μ_ (α  γ)^(α  γ) μ _^. Use of (9.4) (g_ (β  δ)^(β  δ)==λ_ (β  ρ)^(β  ρ) μ_ (ρ  δ)^(ρ  δ)==λ_ (ρ  δ)^(ρ  δ) μ_ (β  ρ)^(β  ρ)) and (9.16) gives,

res1 = Times[μud[red @ α, red @ γ] Tensor[red @ μ], #] &/@res//ExpandAll ;

res2 = %[[1]] == (%[[2]]//MetricSimplifyD[g])

RES = res2/.%//ExpandAll

2 μ_ (δ_β_)^(δ_β_) _ (| λ_) λ_ (β_δ_)^(β_δ_) → (2 (μ) _ (, λ))/μ

The first and the last two terms correspond to a 2d covariant derivative.
To simplify the expression, we use the following rule :

SetScalarSingleCovariantD[True]

rul = %[[2, 1]] → (%[[1]] - %[[2, 2]] - %[[2, 3]]/.{β→δ, γ→β})

so that using relation (9.10b),

ResultFrame[res951 = %[[1]] == (%[[2]]//Simplify)]

We do the same operations for σ_ (γ  3  ;  3)^(γ  3  ;  3) , using (9.20) and (8.4) :

DeclareBaseIndices[Base3d]

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

Overscript[Γ, _] _ (α_3β_)^(α_3β_) → -b_ (βγ)^(βγ) λ_ (αγ)^(αγ)

CovariantD[σuu[red @ γ, red @ i], red @ i] == (CovariantD[σuu[red @ γ, red @ i], red @ i]//ExpandCovariantD[labsz, red @ ζ]//PartialDToDif)

res = %/.i→3/.res84[[2]] →0/.(res920[[1]]/.{α→α_, β→β_}) → (res920[[2]]/.γ→ξ)

σ_ (γ3)^(γ3) _ (; 3) == σ_ (γ3)^(γ3) _ (, 3) - b_ (ζξ)^(ζξ) λ_ (γξ)^(γξ) σ_ (ζ3)^(ζ3)

after multiplication by  μ_ (α  γ)^(α  γ) μ _^and use of (9.4) and (9.2),

Times[μud[red @ α, red @ γ] Tensor[red @ μ], #] &/@res//ExpandAll//SymmetricStandardOrder[b] ;

%/.(res94[[3]]/.{ρ→γ, β→β_, δ→δ_}) →res94[[1]]//MetricSimplify[g] ;

res = %/.ζ→γ

in addition, we have,

res92[[1]] →res92[[2]]

PartialD[res92[[1]], red @ 3] →D[res92[[2]], z] ;            (* as z≡x^3 *)

rul = %/.{γ→α, α→γ}//SymmetricStandardOrder[b]

μ_ (γα)^(γα) →a_ (γα)^(γα) - z b_ (γα)^(γα)

μ_ (αγ)^(αγ) _ (, 3) → -b_ (αγ)^(αγ)

(*9.52*)ResultFrame[res952 = res/.(Expand[Tensor[red @ μ] res1[[2]]]) :→Tensor[red @ μ] res1[[1]]]

Now we come back to equation (9.50), which we also multiply by μ_ (α  γ)^(α  γ) μ _^.  We obtain,

(Times[μud[red @ α, red @ γ] Tensor[red @ μ], #] &/@res950)/.β→η//ExpandAll

res = (%//SymmetricStandardOrder[σ, {2}])/.res951[[1]] →res951[[2]]/.(res952[[1]] →res952[[2]]//SymmetricStandardOrder[σ, {2}])//ExpandAll

and we integrate this expression via \!\(∫\_\(\(-h\)/2\)\%\(\(+h\)/2\)\)... dz.

The first term gives with (9.46):

res1 = RES[[1, 1]] == CovariantD2d[Nuu[red @ η, red @ α], red @ η]

     +h/2 ∫     dz (μ μ_ (αβ)^(αβ) σ_ (βη)^(βη)) _ (| η) == N_ (ηα)^(ηα) _ (| η)      -h/2

The fourth term gives with (9.44):

res4 = RES[[1, 4]] == bud[red @ α, red @ η] Qu[red @ η]

      +h/2 -∫     dz μ b_ (αη)^(αη) σ_ (3η)^(3η) == b_ (αη)^(αη) Q_η^η       -h/2

For the third integral, we use (9.17),

This term is the difference of the surface tractions acting on the faces +h/2 and –h/2, each multiplied by a factor which reduces the local metric to that of the middle surface. To that contribution, we can add the first term ∫-h/2+h/2 dz X_ γ^γ μ_ (α  γ)^(α  γ) μ _^ and define,

The equilibrium condition (equilibrium of forces in the directions _α, α =1,2) takes then the form,

(*9.54*)ResultFrame[res954 = pu[red @ α] + (res4[[2]]/.γ→α) + res1[[2]] == 0]

For the equilibrium condition of forces normal to the shell, we start from (6.5), and

res65 = Xu[red @ i] + CovariantD[σuu[red @ j, red @ i], red @ j] == 0

res65b = %/.i→3//PartialSum[red @ 3, {red @ α}]

σ_ (ji)^(ji) _ (; j) + X_i^i == 0

σ_ (33)^(33) _ (; 3) + σ_ (α3)^(α3) _ (; α) + X_3^3 == 0

We expand the covariant derivation (chapter 5) of the last term. Then we use equations (9.18), (9.19) and (9.20) to reduce the problem to th middle surface.
The Christoffel symbol Overscript[Γ, _] _ (33α)^(33α) is zero (equation (8.4).

CovariantD[σuu[red @ α, red @ j], red @ α] == (CovariantD[σuu[red @ α, red @ j], red @ α]//ExpandCovariantD[labsz, red @ h]//PartialDToDif)/.{j→3} ;

(%/.red @ α→blue @ α//PartialSum[red @ 3, {red @ β}])/.blue @ α→red @ α

The covariant derivative of the 2 - dimensional vector σ_ (α  3)^(α  3) is σ_ (α  3  |  β)^(α  3  |  β), and from chapter 8 (Cu2dRule) we have,

σ_ (α3)^(α3) _ (| α) == σ_ (α3)^(α3) _ (, α) + Γ_ (ααβ)^(ααβ) σ_ (β3)^(β3)

which allows to eliminate Γ_ (α  α  β)^(α  α  β) σ_ (β  3)^(β  3)

res2 = Times[Tensor[red @ μ], #] &/@(res//ExpandAll)/.res1[[2, 1]] →res1[[1]] - res1[[2, 2]]//ExpandAll

In addition, use of equations (9.16) and(9.17) and (8.12)

Times[σuu[red @ α, red @ 3], #] &/@res916 ;

rul916 = (%[[2]]/.{red @ α→red @ α_, red @ β→red @ β_, red @ δ→red @ δ_, red @ λ→red @ λ_}) →%[[1]]

rul917 = (res917[[2]]/.{red @ δ→red @ δ_, red @ γ→red @ γ_}) →res917[[1]]

rul812 = (res812[[2]]/.{red @ α→red @ α_, red @ β→red @ β_}) →res812[[1]]

-2 μ b_ (δ_γ_)^(δ_γ_) λ_ (γ_δ_)^(γ_δ_) →2 (μ) _ (, 3)

Γ_ (3α_β_)^(3α_β_) →b_ (βα)^(βα)

leads to,

res3 = res2/.rul916/.rul917/.rul812

We carry over the present  results, to (6.5) in chapter 6. We also notice that σ_ (3  3  ;  3)^(3  3  ;  3)σ_ (3  3  ,  3)^(3  3  ,  3):

Times[Tensor[red @ μ], #] &/@res65b//ExpandAll ;

res = %/.res3[[1]] →res3[[2]]/.σ_ (33)^(33) _ (; 3) →σ_ (33)^(33) _ (, 3)

then we integrate as before via \!\(∫\_\(\(-h\)/2\)\%\(\(+h\)/2\)\) ...dz

this leads to,

We define,

The final form of the equilibrium condtion for forces normal to the shell is the,

(*9.56*)ResultFrame[res956 = pu[red @ 3] + bdd[red @ α, red @ β] Nuu[red @ α, red @ β] - CovariantD2d[Qu[red @ α], red @ α] == 0]

Remains the equilibrium of the moments. For that, we insert the factor z in the above expressions. The equation associated with (9.54) gives

Times[μud[red @ α, red @ γ] Tensor[red @ μ], #] &/@res950//ExpandAll

res = %/.(res952[[1]] →res952[[2]])/.β→δ/.(res951[[1]]/.{η→η_}) →res951[[2]]//SymmetricStandardOrder[σ, {2}]//ExpandAll

The first term gives with (9.48) (z can be put inside the derivation with respect to δ:

res1 = RES[[1, 1]] == -CovariantD2d[Muu[red @ α, red @ δ], red @ δ]

     +h/2 ∫     dz z (μ μ_ (αβ)^(αβ) σ_ (βδ)^(βδ)) _ (| δ) == -M_ (αδ)^(αδ) _ (| δ)      -h/2

For the third integral, after integration by part, we use (9.17),

The fourth term gives together with the last term in res3 and with (9.2) and (9.44) :

and finally the surface tractions and body forces generate the moment,

(*9.57*)ResultFrame[res957 = mu[red @ α] == -RES[[1, 2]] - res3[[2, 1]] ]

The conditions of equilibrium of the moments in the plane tangent to the middle surface are then,

(*9.58*)ResultFrame[res958 = mu[red @ α] - Qu[red @ α] + CovariantD2d[Muu[red @ β, red @ α], red @ β] == 0]

      M_ (βα)^(βα) _ (| β) + m_α^α - Q_α^α == 0      (9.58)

Equations (9.54),(9.56), and(9.58) all issued from (6.4) constitute the three shell conditions which the stress resultants must satisfy.

Other useful but not independent equations, can be derived, in particular the one for the moments about a normal to the shell. We start from the fact that the stress tensor is symmetrical.

res = ebdd[red @ α, red @ β] σuu[red @ α, red @ β] == 0

Overscript[e, _] _ (αβ)^(αβ) σ_ (αβ)^(αβ) == 0

We apply (9.21) and multiply by μ,

Times[Tensor[red @ μ], #] &/@(res/.res921[[2]] →res921[[1]])

           +h/2 res = ∫     dz  %[[1]] == 0            -h/2

μ e_ (γδ)^(γδ) μ_ (γα)^(γα) μ_ (δβ)^(δβ) σ_ (αβ)^(αβ) == 0

then we split the factor μ_ (γ  α)^(γ  α)using (9.2) (μ_ (γα)^(γα)==a_ (γα)^(γα)-z b_ (γα)^(γα)),

res/.res92[[1]] →res92[[2]]//ExpandAll

Collect[(%[[1, 1]]/.α→γ) + %[[1, 2]], edd[red @ γ, red @ δ]] == 0

res/.res92[[1]] →res92[[2]]//ExpandAll

(Collect[%[[1]], edd[red @ γ, red @ δ]]//KroneckerAbsorb[a]) == 0

which gives with (9.46) and (9.48) and changes in the notations of dummy indices (b_ (γα)^(γα)does depend on z),

edd[red @ γ, red @ δ] (Nuu[red @ γ, red @ δ] + bud[red @ γ, red @ α] Muu[red @ α, red @ δ]) == 0(*9.59*)

ResultFrame[res959 = (%[[1]]/.{γ→α, δ→β, α→γ}) == 0]

e_ (γδ)^(γδ) (b_ (γα)^(γα) M_ (αδ)^(αδ) + N_ (γδ)^(γδ)) == 0

This is a condition imposed to the stress resultants at any single point, which simply represents the symmetry of the stress tensor. It is automatically satisfied via the fundamental shell equations (9.54),(9.56), and (9.58).
Note that using (9.58) we can eliminate the transverse shear force (9.54) and (9.56).

Eliminate[{(res954/.{η→β}), (res958/.{α→β, β→α})}, Qu[red @ β]]//Simplify

{(res954/.{η→α, α→β}), (res958)}

res1 = Eliminate[{(res954/.{η→β}), (res958/.{α→β, β→α})}, Qu[red @ β]]//Simplify ;

res2 = Eliminate[{res956, CovariantD2d[res958[[1]], red @ α] == 0}, CovariantD2d[Qu[red @ α], red @ α]] ; (*9.6*)

It must always kept in mind that the tensors N_ (α  β)^(α  β)and M_ (α  β)^(α  β) are not symmetrical.

    It has been shown that for thin enough shells, the contribution to equilibrium of M_ (α  β)^(α  β)may be neglected, at least in favorable boundary conditions and absence of discontinuities. In this case m_ α^αmust also be absent .  The associated theory is called membrane theory.

res958/.{Muu[α_, β_] →0, mu[α_] →0}//ReleaseHold ;

res960/.{Muu[α_, β_] →0, mu[α_] →0}//ReleaseHold ; (*9.61*)

ResultFrame[res961 = {%[[1, 1]], %[[1, 2]], {Times[-1, #] &/@%%,      "(c)"}}//TableForm]

In addition, from (9.59)

res959/.Muu[red @ γ, red @ β] →0

e_ (αβ)^(αβ) N_ (αβ)^(αβ) == 0

so that N_ (1  2)^(1  2)==N_ (2  1)^(2  1). There are only 3 unknowns N_ (11)^(11),N_ (1  2)^(1  2)and N_ (2  2)^(2  2).

Elastic Law

Elastic Law

Having established the equilibrium shell conditions (9.54),(9.56), and (9.58), and the kinetic relations (9.34) and (9.40), only one last step remains. We must write the elastic laws which relate the stress resultants with the middle surface strains ℰ_ (α  β)^(α  β)and κ_ (α  β)^(α  β).
    We start from (9.46) and (9.48), and use Hooke's law (7.21) to express σ_ (α  δ)^(α  δ) in terms of strain ℰ_ (α  β)^(α  β), which we denote now  η_ (α  β)^(α  β)

DeclareBaseIndices[Base2d] ;

res721=Tensor[σ, {red[α], Void}, {Void, red[β]}] ==
    ((Ε*(Tensor[E, {red[α], Void}, {Void, red[β]}] -
       (ν*Tensor[g, {red[α], Void}, {Void, red[β]}]*Tensor[E, {red[ζ], Void},
          {Void, red[ζ]}])/(-1 + ν)))/(1 + ν)/.{E→η})

and use of (9.7) after multiplication by g_ (β  δ)^(β  δ)(the rhs is at z = 0),

(Times[ guu[red @ β, red @ δ], #] &/@res721) ;

%[[1]] → (%[[2]]/.((res97[[1]]/.{α→α_, β→β_}) →res97[[4]]/.{δ→ρ})//Expand) ;

rul = (%[[1]]//MetricSimplify[g]) → (%[[2]]/.(((res97[[1]]/.{α→α_, β→β_}) →res97[[4]]/.{δ→ρ}))/.β→σ)//Simplify

rulλμ = (res94[[3]]/.{ρ→ρ_, δ→δ_, β→β_}) ->res94[[1]]

λ_ (ρ_δ_)^(ρ_δ_) μ_ (β_ρ_)^(β_ρ_) →g_ (βδ)^(βδ)

res946/.rul ;

res6 = %/.rulλμ//KroneckerAbsorb[g]     (*OK*)

res948/.rul ;

res8 = %/.rulλμ//KroneckerAbsorb[g]     (*OK*)

We express the strains as covariant components and use (9.7),

res97[[1]] == res97[[4]]

rul3 = ηdd[red @ ξ, red @ σ] →ηdd[red @ ξ, red @ ζ] gud[red @ ζ, red @ σ]

g_ (αβ)^(αβ) == a_ (γδ)^(γδ) λ_ (αγ)^(αγ) λ_ (βδ)^(βδ)

η_ (i_j_)^(i_j_) →a_ (τθ)^(τθ) η_ (ξj)^(ξj) λ_ (iτ)^(iτ) λ_ (ξθ)^(ξθ)

η_ (ξσ)^(ξσ) →g_ (ζσ)^(ζσ) η_ (ξζ)^(ξζ)

res1 = res6[[1]] == ((res6/.rul2)[[2]]/.rul3//Simplify) ;

res2 = res8[[1]] == ((res8/.rul2)[[2]]/.rul3//Simplify) ;

res1Ξ = res1/.rulΞ

res2Ξ = res2/.rulΞ

so that we can now use (9.42),

rul4 = (res942[[1]]/.{α→α_, β→β_}) → (res942[[2]]/.{γ→ν})

resN = res1[[1]] == ((res1Ξ[[2]]/.rul4//Expand//KroneckerAbsorb[a])/.rulλμ//KroneckerAbsorb[g]//Simplify)/.rulinvΞ ;

resM = res2[[1]] == ((res2Ξ[[2]]/.rul4//Expand//KroneckerAbsorb[a])/.rulλμ//KroneckerAbsorb[g]//Simplify)/.rulinvΞ ; <br />(*9.62*)

ResultFrame[res962 = {resN, resM}//TableForm]

These equations contain constant terms, ℰ_ (ν  δ)^(ν  δ), κ_ (ζ  ν)^(ζ  ν), and κ_ (ξ  θ)^(ξ  θ), an explicit factor z, and also z- and curvature-dependent terms μ_ (δ  ζ)^(δ  ζ), λ_ (α  τ)^(α  τ) and μ _^. If these terms are explicitly expanded in powers of z, an integration can be performed, and the integration of the even powers (the odd give zero) contain in factor
- the extensional stiffness,

 == (Ε h)/(1 - ν^2) ;

- and the bending stiffness,

K == (Ε h^3)/(12 (1 - ν^2)) ;

i . Calculation of  N_ (α  β)^(α  β)

res962[[1, 1]]

rul92 = (res92[[1]]/.{γ→γ_, α→α_}) →res92[[2]]

rul95 = (res95[[1]]/.{β→β_, α→α_}) →res95[[2]]

rul911 = res911[[1]] → (res911[[3]]/.α→φ)

μ_ (γ_α_)^(γ_α_) →a_ (γα)^(γα) - z b_ (γα)^(γα)

μ→1 + z^2 b - z b_ (φφ)^(φφ)

To perform a non symbolic integration, we will use,

           +h/2                    +h/2 Sdz = ∫     dz  ; Sbdz =  ∫     dz  ;            -h/2                    -h/2

ruleIntegration[expr_] := (∫_ (-h/2)^(+h/2) (expr/.{Sdz→1, Sbdz→1}) z)

     +h/2 ∫     dz  f[z] == ruleIntegration[Sdz  f[z]]      -h/2

     +h/2 ∫     dz f[z] == ∫_ (-h/2)^h/2f[z] z      -h/2

If we neglect all the terms of order h^5 and higher, we have using (9.2), (9.5) and (9.11), after a long and tedious calculation (if done by hand !) ,

res962[[1, 1]]/.rul92/.rul95/.rul911//MetricSimplify[g]//ExpandAll ;

%[[1]] == (%[[2]] + O[z]^3//Normal//Expand) ;

%[[1]] == ruleIntegration[%[[2]]]//KroneckerAbsorb[a] ;

%[[1]] == (Apply[Plus, {0, ( (1 - ν^2))/Ε, 0, (12 (1 - ν^2) K)/Ε} (CoefficientList[%[[2]], h])]) ;

resK = %[[1]] == Collect[%[[2]], {, K}, Simplify]

RES =  Coefficient[resK[[2]], ]//MetricSimplify[a]//Simplify        (* OK *)

 (-(-1 + ν) ℰ_ (αβ)^(αβ) + ν a_ (αβ)^(αβ) ℰ_ (ττ)^(ττ))

res0 = κ_ (ωπ)^(ωπ) (Coefficient[res, κ_ (ωπ)^(ωπ)]//MetricSimplify[a]//SymmetricStandardOrder[a]//SymmetricStandardOrder[b])//FullSimplify ;

res0 = Collect[%, C1] ;

The remaining term below is neglected compared to RESD (two orders in h smaller)

Finally :

(*9.63*)ResultFrame[res963 = resK[[1]] == RES + Collect[RESK, κ_ (ωπ)^(ωπ) , Simplify]]

ii . Calculation of  M_ (α  β)^(α  β)

The treatment of M_ (α  β)^(α  β)is completely similar, it only differ by the presence of a factor z in the integrant and a minus sign in the definition (9.48) :

res962[[1, 2]]/.rul92/.rul95/.rul911//MetricSimplify[g]//ExpandAll ;

%[[1]] == (%[[2]] + O[z]^3//Normal//Expand) ;

%[[1]] == ruleIntegration[%[[2]]]//KroneckerAbsorb[a] ;

%[[1]] == (Apply[Plus, {0, ( (1 - ν^2))/Ε, 0, (12 (1 - ν^2) K)/Ε} (CoefficientList[%[[2]], h])]) ;

resK = %[[1]] == Collect[%[[2]], {, K}, Simplify]

ResultFrame[res964 = resK[[1]] == %]

Note : Except for the κ_ (ωω)^(ωω)term, we find a sign different from equation (9.72) in Flügge's book (?).

The two equations (9.63) and (9.64) represent the elastic law of the shell. Together with the kinematic equations (9.34) and (9.40), and the equilibrium conditions (9.54), (9.56), and (9.58), they are the fundamental equations of shell theory.


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