Compliance matrix from strain matrix, Matlab

Click For Summary
The discussion revolves around calculating the compliance matrix C as the inverse of the strain matrix S using Matlab. The user initially encounters discrepancies between their computed values and the expected results from an academic paper. They realize that they incorrectly assumed all elements below the diagonal of the compliance matrix were zero, leading to errors in their calculations. Upon recognizing that the matrix is symmetric, they correct their approach, acknowledging that the compliance coefficients should reflect this symmetry. This insight resolves their issue, highlighting the importance of understanding matrix properties in computational tasks.
grepecs
Messages
17
Reaction score
0

Homework Statement


(I'm trying to replicate some results in an academic paper where they have calculated elastic properties of a crystal. Because I'm going to do a lot of similar time-consuming calculations following this one, I need to learn how to do them using a computer.)

The compliance matrix C is the inverse of the strain matrix S. I want to calculate C for a given S. I thought it would be easy to do this in Matlab using the command C=inv(S), but for some reason most of the resulting compliance matrix elements are wrong.

Homework Equations



C=S^-1

where S is the 6x6 matrix

[209 114 102 0 1 0;
0 234 139 0 -7 0;
0 0 238 0 27 0;
0 0 0 77 0 -5;
0 0 0 0 23 0;
0 0 0 0 0 72]

The Attempt at a Solution


In Matlab:

C=inv(S)

which gives me

C=[0.0048 -0.0023 -0.0007 0 -0.0001 0;
0 0.0043 -0.0025 0 0.0042 0;
0 0 0.0042 0 -0.0049 0;
0 0 0 0.0130 0 0.0009;
0 0 0 0 0.0435 0;
0 0 0 0 0 0.0139]

However, the correct answer is supposed to be (the elements below have been multiplied by 10^3)

C=[6.8 -2.3 -1.7 0 1 0;
0 8.8 -5.2 0 9.2 0;
0 0 9.5 0 -13 0;
0 0 0 13 0 0.9;
0 0 0 0 62.5 0;
0 0 0 0 0 13.9]

As you can see, the only elements that I get right are C(1,2), C(4,4), C(4,6), and C(6,6), i.e., only 4 out of the 13 nonzero elements. It seemed like such a simple task, but at the moment I'm stuck. Any hints as to what I'm doing wrong? I have already double checked S.
 
Physics news on Phys.org
Ok, I solved it. For potential future persons with a similar problem: the matrix elements (in this case the elastic constants and compliance coefficients) are symmetric about the diagonal, which means that c12=c21, c13=c31 etc. I wrongly assumed that all elements below the diagonal were zero, since only those above the diagonal were explicitly listed in the paper I read (which is of course a perfectly reasonable thing to do -- I should have known better).
 

Similar threads

  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
7K
  • · Replies 13 ·
Replies
13
Views
7K
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 1 ·
Replies
1
Views
6K
  • · Replies 1 ·
Replies
1
Views
19K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 1 ·
Replies
1
Views
2K