3.029 Spring 2022
Lecture 08 - 02/23/2022

Physical Properties of Crystals

Physical properties or observables are measurable quantities of the state of a physical system.

While certain physical properties, like the mass density of a material, are isotropic, preferred directions in crystals imply that others, such as the stiffness tensor of elastic materials, depend on direction.

Since physical properties represent measurable quantities, they are by definition measured in a particular reference frame.

It stands to reason, that if a set of measurements in a different reference frame represent the same physical property, there must exist  transformation between the two reference frames relating the measured physical quantities.

In this section, we will introduce this relationship.

Coordinate Transformations (Review)

We can define a transformation between two sets of reference frames

and

where the matrix (Subscript[α, ij])represents the direction cosines between the two reference frames

In-fact, you’ve seen this before in the notebook `3.019_L12=Change_of_Basis_Stiffness_Outline.nb` from last semester (which I’ve uploaded again on canvas)!

We will quickly review some concepts here, and extend the analysis to Thermodynamic stability

Einstein Summation Convention

Left-Multiplying a vector with a matrix

Multiplication of Matrices

where

Rotating a Rank - 2 Tensor

Consider an “old” (Orange) and a “new” (Blue) coordinate system

Denote the direction cosines matrix mapping a vector from one coordinate system to another as

is the same vector, but expressed in a different coordinate systems.

For example, suppose the "Blue coordinate system" is rotated by Pi/4 around the z-axis from the Orange (original) one.

orangeVector = {1,3,-1};
blueVector = RotationMatrix[Pi/4,{0,0,1}].orangeVector

Inverse[RotationMatrix[Pi/4,{0,0,1}]].blueVector

Physical property tensors in either coordinate system are given by:

These are the same vectors and same rank-2 tensors, but expressed in different coordinate systems.

Suppose now we know a rank-2 physical property tensor in the old (orange) coordinate system

How do we express the same physical property tensor, but in the blue coordinate system?

Transform the vectors

Left-multiply by the inverse

Note that the inverse of going from blue to orange is going from orange to blue we have:

This finally gives the relations:

and

Example: Rotation of π/2 around [0,0,1]

Rank-2 tensor in “old” coordinate system

MatrixForm[orangeRank2Tensor= Table[Indexed[m,Sort[{i,j}]],{i,3},{j,3}]]

Transformation from “orange” to “blue”

MatrixForm[orangeToBlue = RotationMatrix[Pi/2,{0,0,1}]]

The inverse transformation from “blue” to “orange”

MatrixForm[blueToOrange=Simplify[ Inverse[orangeToBlue]]]

Note: For symmetry operators such as rotations (which have determinant = 1), the inverse is the same as the transpose.

The Rank-2 tensor in the “new” coordinate system is given by:

MatrixForm[Simplify[orangeToBlue.orangeRank2Tensor.blueToOrange]]

Intrinsic “Tensor” Symmetries

Paramagnetism / Diamagnetism

Consider a magnetized crystal

The work done by the battery is given by:

The first term is related to Joule heating and does not depend on the magnetic field, (Subscript[H, i]) or magnetic induction, (Subscript[B, i]) direction

The second term updates our fundamental thermodynamic relation to read:

We can relate the magnetic induction, B, and magnetic field, H, using a constitutive relationship given by

where I is the magnetization intensity

In isotropic materials, we can express the intensity of magnetization to the field strength using

where ψ is the magnetic susceptibility

More generally, the intensity of magnetization need to be parallel to the applied field, giving for anisotropic crystals

Combining these, we obtain the additional work term as

where we’ve introduced the permeability tensor (Subscript[μ, ij])=(Subscript[μ, 0])((Subscript[δ, ij])+(Subscript[ψ, ij]))

If we write this out fully we have:

As such we can write:

Differentiating the first expression wrt (Subscript[H, 2]) and the second wrt (Subscript[H, 1]) we obtain

However, we know from the equality of mixed partials that these should be identical

Thus we conclude that (Subscript[μ, ij])=(Subscript[μ, ji])

This is an “intrinsic” tensor symmetry, which states that the permeability tensor is invariant under permutation of the indices i ↔ j

I.e. the rank-2 tensor is symmetric.

Independent Components

Since the only condition we have so-far on our rank-2 tensor is that it be symmetric

We are free to choose its remaining d(d-+1)/2 components

These are called the independent tensor components, and the most general rank-2 tensor is given in terms of its symbolic independent components

MatrixForm[Table[Indexed[μ,Sort[{i,j}]],{i,3},{j,3}]]

Note: We used Indexed to offer a symbolic indexing scheme

Indexed[μ,{1,2}]

In this case, it’s rather easy to specify the condition for symmetry

Namely, we sort the indices in ascending order (i.e. keep (Subscript[μ, 12]) over (Subscript[μ, 21]))

However, for higher-rank tensors with more complicated symmetries - we might not always be able to intuit the conditions

Fortunately, there's a very convenient way to express these in the Wolfram Language

MatrixForm[
permeabilityTensor=
With[{symbolName=μ,d=3},
Normal[
SymmetrizedArray[pos_:>Indexed[symbolName,pos],{d,d},{
{Cycles[{{1,2}}],1}}
]]]]

This looks complicated - but it generalizes very nicely!

Let's break it down. SymmetrizedArray takes three arguments:

A list of rules of how to specify each component
here we’re just using a symbolic indexing scheme like above

The dimensions the array is valid in
here we specified 3D

A list of symmetries, e.g. using “Generators”
here we specify that upon permutation of the 1st and 2nd indices, the tensor gets multiplied by 1 (i.e. is the same)

Note: If instead our tensor was anti-symmetric, we would have specified a -1 instead

Stiffness and Compliance

In 3.013 last semester, you talked about elastic properties of solids which connect the stress state of a material with its strain

I suspect you probably had a tensile testing lab which had you plot figures like this?

In the linear elastic regime, the stress increases linearly with increasing strain.

When the stress (or strain) is large enough, the material softens (becomes less stiff).

A good mental picture is a Hooke's law spring's force versus displacement curve.

We will investigate the nature of stresses and strains.

An important take-away is that stresses and strains are not so simple as the plot above

they are not scalars that can be represented by a single axis

Instead, stresses and strains are rank-2 tensors

Stress Tensor

The units of stress are (Newtons/(Meters^2))

It is instructive to think of stress as representing the ratio between two vector quantities

The force vector

and the area vector

Since these two vectors can be independently varied, the stress tensor is rank-2 tensor w/ two indices

Moreover, for the material to be in static-equilibrium we require that the stress tensor be symmetric

We won’t prove this but Nye’s Physical Properties of Crystals is an excellent resource (for all things physical properties)

Strain Tensor

Similarly, the strain tensor combines information from two local vectors.

Consider two line segments in a small region near a given point.
1) ((OverVector[L])^ref) which is a reference vector in the original unstrained body. You can think of it as a line segment.
2) ((OverVector[L])^ϵ) which is the image reference vector in the strained body.

The deformation gradient tensor is therefore given by

The symmetrical part of this rank-two tensor is the strain-tensor

Note: the antisymmetrical part describes rigid-body rotation which we assume does not generate any stress

Generalized Hooke’s Law

Armed with our definitions for stress and strain as rank-2 tensors

we can write a generalization of Hooke’s law using index notation

where we’ve introduced the rank-4 compliance tensor

Note: we are still in the linear-elastic regime

In general a rank-4 tensor in 3D has (3^4)=81 components

MatrixForm[
generalRank4Tensor=
With[{symbolName=s,d=3},
Normal[
SymmetrizedArray[pos_:>Indexed[symbolName,pos],{d,d,d,d},{}]]]]

Variables[generalRank4Tensor]//Length

However, since both the stress and strain tensor are symmetric tensors (i.e. (Subscript[σ, ij])=(Subscript[σ, ji]) & (Subscript[ϵ, ij])=(Subscript[ϵ, ji]))

We conclude that the compliance tensor also has these symmetries (i.e. (Subscript[s, ijkl])=(Subscript[s, jikl])=(Subscript[s, ijlk]))

This reduces the independent components to 36

MatrixForm[
minorSymmetriesRank4Tensor=
With[{symbolName=s,d=3},
Normal[
SymmetrizedArray[pos_:>Indexed[symbolName,pos],{d,d,d,d},{
{Cycles[{{1,2}}],1},
{Cycles[{{3,4}}],1}
}]]]]

Variables[minorSymmetriesRank4Tensor]//Length

An equivalent definition to the compliance would be to introduce the stiffness tensor

which has the same “intrinsic” tensor-symmetries as the compliance tensor

Note: Yes, it’s curious that stiffness uses the symbol, c, and compliance used the symbol, s

Strain Energy

A strained crystal does work, in-fact we’ve already seen this work term multiple times

Consider a hydrostatic stress state (i.e. one with (Subscript[σ, 11])=(Subscript[σ, 22])=(Subscript[σ, 33])=-P)

Since all the off-diagonal terms are zero, we the only relevant strains are (Subscript[dϵ, 11]), (Subscript[dϵ, 22]), and (Subscript[dϵ, 33])

remembering the definition of strain: (Subscript[ϵ, 11])=(Subscript[Δl, 1])/(Subscript[l, 1]), and substituting (Subscript[l, 1])(Subscript[l, 2])(Subscript[l, 3])=V, we can generalize

as the strain energy:

As such, in a reversible (isoentropic) process, we can substitute our generalized Hookes law to obtain:

Similarly, with the Diamagnetism case above - since Ψ is a total differential, we can take its derivative it in any order

and thus we conclude that the stiffness tensor additionally has (ij) ↔ (kl) symmetry
Note: we’re permuting the indices as a pair

A similar argument ensures the compliance tensor has (Subscript[s, ijkl])=(Subscript[s, klij]) symmetry

MatrixForm[
complianceTensorSymbolic=
With[{symbolName=s,d=3},
Normal[
SymmetrizedArray[pos_:>Indexed[symbolName,pos],{d,d,d,d},{
{Cycles[{{1,2}}],1},
{Cycles[{{3,4}}],1},
{Cycles[{{1,3},{2,4}}],1}
}]]]]

This reduces the independent components further to 21!

Length[Variables[complianceTensorSymbolic]]

Neumann’s Principle

So far, we’ve seen how physical properties are tensors which transform under coordinate transformations

And we’ve derived the most general symbolic tensors for some common material properties

You will get more practice in assignment 2!

The next step is to see how crystal symmetry constrains these independent components further

This is summarized nicely by Neumann's principle, which states that:

"The symmetry elements of any physical property of a crystal must include the symmetry elements of the point group of that crystal"

What this means for us, is that if we rotate a tensor using any of the symmetry operations of its point group, the resulting tensor must be identical to the one with started with

This therefore enforces “crystal symmetry” constraints of the form of the tensor

As an example, let’s suppose we are looking at a material which has a four-fold rotation symmetry along the z-axis

MatrixForm[fourFoldRotation=RotationMatrix[π/4,{0,0,1}]]

And rotate the rank-2 permeability tensor we derived above using our coordinate transformation

Note:  I used the transpose instead of the inverse, since the determinant of our rotation transformation is 1

MatrixForm[rotatedPermeabilityTensor=Simplify[fourFoldRotation.permeabilityTensor.(fourFoldRotation^\[Transpose])]
]

Neumann’s principle tells us that these two tensors must be identical

neumannConditions=Thread[Flatten[permeabilityTensor]==Flatten[rotatedPermeabilityTensor]]

Which enforces the following constraints

neumannConstraints=First[Solve[neumannConditions,Variables[permeabilityTensor]]]

As such, the most general permeability tensor for a material with a four-fold rotation axis around the z-axis (e.g.Tetragonal systems) takes the form

MatrixForm[permeabilityTensor/.neumannConstraints]

More generally, Neumann’s principle can be expressed for arbitrary-rank tensors as

where (Subscript[R, ij]) is any point group operation of the crystal

E.g. for rank-2 tensors we have

and similarly for rank-4 tensors

You will explore this form further in your second assignment!

Stability Constraints

Poisson’s Ratio

In addition to the “intrinsic” tensor symmetries and the crystal symmetries introduced by the material’s point group, which determine the independent components in tensors, thermodynamic stability places additional constraints on the values those components can take

As an example, we’ll look at the compliance tensor for an isotropic material

As we saw above, the compliance tensor, (Subscript[s, ijkl]), is a rank-4 tensor given by the defining equation:

Since the tensor has both  and  symmetry, we can use a condensed matrix notation instead

where the indices now run from 1-6, with the following scheme:

1 -> 11

2 -> 22

3 -> 33

4 -> 23, 32

5 -> 13, 31

6 -> 12, 21

For an isotropic material, crystal symmetry reduces to matrix to

MatrixForm[isotropicComplianceMatrix={{(IndexedDefault[s, 1, 1]),(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 2]),0,0,0},{(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 1]),(IndexedDefault[s, 1, 2]),0,0,0},{(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 1]),0,0,0},{0,0,0,2 ((IndexedDefault[s, 1, 1])-(IndexedDefault[s, 1, 2])),0,0},{0,0,0,0,2 ((IndexedDefault[s, 1, 1])-(IndexedDefault[s, 1, 2])),0},{0,0,0,0,0,2 ((IndexedDefault[s, 1, 1])-(IndexedDefault[s, 1, 2]))}}]

Introducing the more common  notation

where E is Young's Modulus, G is the Rigidity (or Shear) Modulus, and  is Poisson's ratio, we obtain

MatrixForm[
isotropicComplianceMatrix = Simplify[isotropicComplianceMatrix/.{Indexed[s,{1,1}]-> 1/Ε,Indexed[s,{1,2}]-> -ν/Ε}]]

As we saw above, the strain energy stored in a crystal is given by

Which must be positive for thermodynamic stability, suggesting  must be positive semi-definite

Reduce[Thread[Eigenvalues[isotropicComplianceMatrix] >= 0],{Ε,ν},Reals]

Which specifies that Young’s Modulus must be positive, and that Poisson’s ratio can only take values between -1 and 1/2

In-fact, a material with a Poisson ratio of 1/2 is incompressible

Zener Ratio

For cubic materials instead, the compliance tensor is given by

MatrixForm[
cubicComplianceMatrix={{(IndexedDefault[s, 1, 1]),(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 2]),0,0,0},{(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 1]),(IndexedDefault[s, 1, 2]),0,0,0},{(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 2]),(IndexedDefault[s, 1, 1]),0,0,0},{0,0,0,(IndexedDefault[s, 4, 4]),0,0},{0,0,0,0,(IndexedDefault[s, 4, 4]),0},{0,0,0,0,0,(IndexedDefault[s, 4, 4])}}]

Where the extra independent component is related to  and  with the Zener ratio:

MatrixForm[
cubicComplianceMatrix=cubicComplianceMatrix/.(IndexedDefault[s, 4, 4])->2((IndexedDefault[s, 1, 1])-(IndexedDefault[s, 1, 2]))/α]

Reduce[Thread[Eigenvalues[cubicComplianceMatrix] > 0],{(IndexedDefault[s, 1, 1]),(IndexedDefault[s, 1, 2]),α},Reals]

Which must be a positive constant according to thermodynamic stability