# Legacy Documentation

## Structural Mechanics (2018)

This is documentation for an obsolete product.

 Chapter 7 Governing Equations of Elasticity 7.1 Introduction Often in solving elasticity problems, you need to algebraically manipulate the governing equations of the theory of elasticity. For example, in generating the governing equations of a two-dimensional stress analysis problem, you eliminate the dependency in one coordinate in the three-dimensional equations. The resulting problem is usually much easier to handle. Similarly, you manipulate elasticity equations to find approximate solutions to the equations whose exact solutions are extremely difficult to find, if at all possible. Mathematica has a large number of facilities to manipulate mathematical expressions. Using pattern matching, series expansion functionality, and various manipulation facilities, you can implement very effective approximation techniques in the Mathematica environment. In addition, because the equations of the theory of elasticity tend to become complicated, long, and consequently prone to error in manipulations, performing analyses in Mathematica increases efficiency and correctness. The focus of this chapter is on the governing equations of the linearized theory of elasticity in three types of coordinate systems, namely, Cartesian, cylindrical, and spherical coordinates. The chapter introduces functions to deal with elasticity coefficients, strain-displacement relations, constitutive relations, and equilibrium and elastodynamics equations. You can generate the equations in two types of formats: functional and indicial. In functional format, the coordinate dependency and their derivatives with respect to coordinates of the physical quantities, such as strain, stress, and potential, are given in Mathematica function form. For example, in functional form, u[x][x, y, z] denotes the x component of the displacement vector in Cartesian coordinates. The derivative of this term with respect to x in indicial notation is . 7.2 Notations 7.2.1 Coordinate Systems and Displacement Components The package GoverningEquations covers the three most widely used coordinate systems: Cartesian, cylindrical, and spherical. All expressions in the package are available in two formats: functional and indicial. This is the functional form of displacement components in Cartesian coordinates. In[1]:= In[2]:=DisplacementComponents[u,Cartesian[x,y,z]] Options for the functions: DisplacementComponents, StrainComponents, StressComponents, ForceComponents, PotentialComponents, StrainDisplacementRelations, IsotropicStressStrainRelations, EquilibriumEquations, and ElastodynamicsEquations. In indicial notation, you use subscripts to denote the dependencies and the derivatives with respect to the coordinates. For instance, you display the displacements in Cartesian coordinates using the option Notation set to Indicial. In[3]:=DisplacementComponents[u,Cartesian[x,y,z], Notation->Indicial] Out[3]= Similarly, you can obtain the displacement components in cylindrical coordinates. In[4]:= Out[4]= You denote a derivative with respect to a coordinate by a comma and the coordinate. For example, the derivative of the x component of the displacement vector with respect to the x coordinate is depicted in the right-hand side term of the following relation. You can also obtain the x-derivatives of the displacement terms in indicial notation. In[5]:= Out[5]= You can express the equations in indicial notation. You obtain the first of the strain-displacement relations by setting the option Notation to Indicial, that is, Notation ->Indicial. In[6]:=StrainDisplacementRelations[,u, Cartesian[r,,],    Notation->Indicial][[1]] Out[6]= In order to avoid multiplication of the indicial terms, such as the index of the term above, use HoldForm to wrap the subscriptions. In[7]:= Out[7]//FullForm= You can still manipulatethe terms in this expression, however. In[8]:= Out[8]= You can indicate the derivatives in functional form using the total derivative function Dt. This is the same expression in functional form. In[9]:=StrainDisplacementRelations[,u, Cartesian[r,,]][[1]] Out[9]= The full form of this equation is given, when this shows how to utilize HoldForm for equations in functional form. The use of HoldForm here avoids the evaluation of differential terms in equations. In[10]:= Out[10]//FullForm= As previously demonstrated, the function DisplacementComponents generates a list of the displacement components in a given coordinate system in either functional or indicial forms. The default format is functional form. In[11]:=DisplacementComponents[u, Cartesian[x,y,z]] Out[11]= In addition to setting the option Notation, you can switch the forms of expressions between indicial and functional representations using the functions IndicialForm and FunctionalForm. In[12]:= Out[12]= Similarly, the function FunctionalForm converts expressions in indicial form into functional form. In[13]:= Out[13]= In[14]:= Out[14]//FullForm= Note that derivatives in functional form are wrapped by HoldForm and the derivation is represented by the total derivative function Dt. These conventions are very important to keep in mind when manipulating expressions generated in Structural Mechanics. It is also especially noteworthy that there is no coordinate dependency in the terms in an indicial expression; therefore, you must perform coordinate dependent operations, such as derivation in functional expressions by careful replacements. This results with the expression in indicial representation. In[15]:= Out[15]= In[16]:= Out[16]= In[17]:= Out[17]= In[18]:= Out[18]= 7.2.2 Strain Components The strain state at a point in an elastic body is represented as a second-order symmetric tensor. You obtain the symbols for the six components of the strain state by using the function StrainComponents in a coordinate system. The strain components in functional and indicial forms are given in the Cartesian coordinates. In[19]:=StrainComponents[, Cartesian[x,y,z]] Out[19]= In[20]:= Out[20]= We represent the strain state in tensor form by using the function VectorToTensor because the strain tensor is symmetric. In[21]:= Out[21]//MatrixForm= Here are the strain components in cylindrical coordinates and spherical in indicial output format. In[22]:=StrainComponents[, Cylindrical[r,,z],Notation-> Indicial] Out[22]= In[23]:=StrainComponents[, Spherical[r,,],Notation-> Indicial] Out[23]= 7.2.3 Stress Components Like the strain state at a point in an elastic body, the stress state at a point is a second-order symmetric tensor. It is represented by six independent variables. In[24]:=StressComponents[, Cartesian[x,y,z]] Out[24]= In[25]:= Out[25]= In[26]:= Out[26]//MatrixForm= Here are the stress components in cylindrical coordinates in functional form. In[27]:=StressComponents[sigma,Cylindrical[r,,z]] Out[27]= This represents the stress components in cylindrical and spherical coordinates in indicial form. In[28]:=StressComponents[, Cylindrical[r,,z], Notation->Indicial] Out[28]= In[29]:=StressComponents[, Spherical[r,,], Notation->Indicial] Out[29]= 7.2.4 Body Force Components A vector represents body force acting at a point in a continuum. Obtain the components of the body force per unit mass in the Cartesian coordinates using the function ForceComponents. In[30]:=ForceComponents[f, Cartesian[x,y,z], Notation->Indicial] Out[30]= The following are the body forces for various coordinate systems generated in functional and indicial forms. In[31]:=ForceComponents[f, Cartesian[x,y,z]] Out[31]= In[32]:=ForceComponents[f, Cylindrical[r,,z]] Out[32]= In[33]:=ForceComponents[f, Cylindrical[r,,z], Notation->Indicial] Out[33]= In[34]:=ForceComponents[f, Spherical[r,,]] Out[34]= In[35]:=ForceComponents[f, Spherical[r,,], Notation->Indicial] Out[35]= 7.2.5 Scalar and Vector Potentials In elastodynamics, you express the displacement components in terms of two potential functions: scalar and vector. You use PotentialComponents to represent the components of scalar and vector displacement potential functions.         u = +      = + for = Generate the symbols for potential functions in indicial form. In[36]:=PotentialComponents[, ,Cartesian[x,y,z], Notation->Indicial] Out[36]= In[37]:=ForceComponents[f, Cartesian[x,y,z], Notation->Indicial] Out[37]= The following are the scalar and vector displacement potentials for various coordinate systems generated in functional and indicial forms. In[38]:=PotentialComponents[,, Cartesian[x,y,z]] Out[38]= In[39]:=PotentialComponents[,, Cylindrical[r,,z]] Out[39]= In[40]:=PotentialComponents[,, Cylindrical[r,,z], Notation->Indicial] Out[40]= In[41]:=PotentialComponents[,, Spherical[r,,]] Out[41]= In[42]:=PotentialComponents[,, Spherical[r,,], Notation->Indicial] Out[42]= 7.2.6 Elasticity Coefficients Two coefficients can fully characterize the elastic features of an isotropic material. The most commonly used elastic constants include Young's modulus, Lamé coefficients, bulk modulus, shear modulus, and Poisson's ratio. The second coefficient of the Lamé coefficients is often called the modulus of rigidity or shear modulus in engineering literature. The selection of proper coefficients may result in compact closed-form equations in various types of elasticity problems. Engineering handbooks usually include conversion tables for this purpose. In Structural Mechanics, ConvertCoefficients handles these conversions. Obtain the Young's modulus and the first Lamé coeffient in terms of the bulk modulus k and shear modulus G. The options specify what symbol to use for an elastic coefficient. For example, the second option LameCoefficients -> {, } in opts specifies that the symbols {, } are used for the Lamé coefficients. In[43]:= In[44]:= Out[44]= In the following, you can produce a table of all possible relationships among the elastic constants and k. The size of tabular output is reduced by 0.75 (Magnification -> 0.75) to fit on the page. This loads the add-on package DiscreteMath`Combinatorica` with which you calculate permutations and combinations. In[45]:= In[46]:= All possible pairs of the elements in clist are calculated. In[47]:= The function f1 calculates all possible pairs of the resulting set after a set of elements are removed from clist. In[48]:= This produces a conversion table for and k. In[49]:= Out[49]//TableForm= Using the GridBox and DisplayForm functions in Mathematica, you can create the tabular representation of a conversion table. Here the Lamé coefficients and are expressed in terms of Bulk modulus k, Poisson's ratio , and Young's modulus 7.3 Strain-Displacement Relationships Components of the strain tensor at a point are related to the derivatives of the displacement vector. In[50]:=StrainComponents[, Cartesian[x,y,z], Notation->Indicial] In this output, the strain component represents the unit elongation at a point in the x-direction, that is, , is ( + ), and so on. Represent the strain components in tensor form using the function VectorToTensor since the strain tensor is symmetric. In[51]:=VectorToTensor[StrainComponents[, Cartesian[x,y,z], Notation->Indicial]]//MatrixForm Generate the strain-displacement relationships in the three types of coordinates systems using the function StrainDisplacementRelations. In Cartesian coordinates, the relationships between the strain components and the displacements are shown. In[52]:=StrainDisplacementRelations[ , u, Cartesian[x,y,z],Notation->Indicial]//TableForm Out[52]//TableForm= Here are the isotropic strain-displacement relationships in cylindrical coordinates. In[53]:=StrainDisplacementRelations[, u, Cylindrical[r,,z],Notation->Indicial]//TableForm Out[53]//TableForm= You can give the same relationships in functional form. In[54]:=StrainDisplacementRelations[, u, Cylindrical[r,,z]] Out[54]= The strain-displacement relationships become more complicated in spherical coordinates. In[55]:=StrainDisplacementRelations[, u, Spherical[r,,]]//TableForm Out[55]//TableForm= 7.4 Stress-Strain Relationships The stress-strain relationships, also known as the constitutive relations, are the generalized Hook's law for homogenous isotropic bodies. Using the function IsotropicStressStrainRelations you can calculate them. This returns the relationships in Cartesian coordinates. In[56]:=cons=IsotropicStressStrainRelations[, , {, }, Cartesian[x,y,z],Notation->Indicial]//TableForm Out[56]//TableForm= This generates the same expressions in functional form. In[57]:=IsotropicStressStrainRelations[, , {, }, Cartesian[x,y,z]] Out[57]= For example, here you can replace the Lamé coefficients with Young's modulus and Poisson's ratio in the stress-strain relationships in Cartesian coordinates. In[58]:= Out[58]= Once you have the replacements, you can obtain the constitutive relations in terms of Young's modulus and Poisson's ratio. In[59]:=(cons/.conv)//TableForm Out[59]//TableForm= Here are the constitutive relations in cylindrical coordinates. In[60]:=IsotropicStressStrainRelations[, , {, }, Cylindrical[r,,z]]//TableForm Out[60]//TableForm= These are the constitutive relations in spherical coordinates. In[61]:=IsotropicStressStrainRelations[, , {, }, Spherical[r,,],Notation->Indicial]//TableForm Out[61]//TableForm= You can also represent the stress-strain relations in terms of strain components by solving the equations for the strain components. Use the strain components in indicial form as variables to solve the equations eqns. In[62]:=strs=StrainComponents[, Cartesian[x,y,z],Notation->Indicial] Out[62]= In[63]:= In[64]:=strains={Solve[eqns,strs]}//TableForm Out[64]//TableForm= Next replace the Lamé coefficients with Young's modulus and Poisson's ratio . In[65]:= Out[65]= By substitution and simplification, you can express these equations in a compact form in terms of and . In[66]:= Out[66]//TableForm= This simplifies the results into a more compact form. In[67]:= Out[67]//TableForm= 7.5 Equations of Equilibrium You generate the equations of equilibrium by considering the conditions of static equilibrium in an elastic body between internal and external forces.The dynamic case includes the acceleration terms and external dynamic forces in these balance equations. This produces the equations of equilibrium in Cartesian coordinates. In[68]:= Out[68]//TableForm= Using the dynamic equilibrium of equations in cylindrical coordinates is more useful in cases where you give the boundary conditions in terms of simple expressions in cylindrical coordinates. Here you can generate the dynamic equilibrium of equations. In[69]:=EquilibriumEquations[ , u, f, , t, Cylindrical[r,,z], Notation->Indicial]//TableForm Out[69]//TableForm= You can obtain the same equations in spherical coordinates. In[70]:=EquilibriumEquations[ , u, f, , t, Spherical[r,,], Notation->Indicial] Out[70]= 7.6 Elastodynamics Equations You can decouple the governing equations of motion in an isotropic homogenous medium into two independent sets of equations using displacement potentials. The displacement potentials, which are a scalar function and a vector function, reduce the governing equations into two wave equations: one scalar equation in the scalar potential and one vector equation in the vector potential .     u = +      = + for = ElastodynamicsEquations[, ,{cL,cT}, t, Cartesian[x,y,z],Notation->Indicial]//TableForm Out[71]//TableForm= The first equation in this output corresponds to the equation for the scalar potential , while the next three equations in the second list are for the vector potential . You can express the shear (tranverse) and the longitudinal (pressure) wave velocities in terms of the Lamé coefficients and the mass density as follows.             =      and =      In[72]:= In[73]:= Out[73]= In[74]:= Out[74]= You can generate the equations of motion in cylindrical coordinates in text form. In[75]:= Out[75]= This converts these equations into indicial form. In[76]:= Out[76]=