# Composite Laminate Mass Matrix Help

So, as the title of the post implies, I'm making an FEM code for a composite laminate plate using the Mindlin plate theory. And, as I am trying to get the mode shapes for the plate, I needed to make a mass matrix. Following some other examples and some past code someone gave me, I managed to make one.

But the problem is, when I change the number of elements, like for example, from 4x4 to 5x5 elements, some of the mode shapes, the 4th one specifically, flips upside down. And that is the case when I change to number of elements. Sometimes the 1st and 2nd mode shapes are flipped. Sometimes all of them are. But I still can't find what is wrong.

What could be causing this? Is there some checklist of simple things I should check to correct my mass matrix? If there is an issue you think that might be a problem, please be as specific as possible in coding terms. Thanks in advance!

• By "flipped" do you mean the displacement vector is multiplied by -1? If so, a mode shape (i.e. eigenvector) can be multiplied by any scalar and is still the same eigenvector. Apr 25 '17 at 19:27
• Yes, by flipped, I do mean that it is multiplied by -1. And while i was tempted to just multiply it by -1 and call it a day, since changing the number of elements "unflips" some previously "flipped" mode shapes, the solution of just multiplying by -1 doesn't really hold. Could it be that the eig() function on matlab could be wonky for large matrices? I remember having an issue with my shape functions because I used syms and diff() rather than hard coding the shape function derivatives. Apr 26 '17 at 1:18
• You don't need to multiply by -1, it is already an eigenvector as it is. If you are asking why this happen, that my be related with the fact that the solution is computed iteratively. Apr 26 '17 at 11:46
• To expand slightly on the comment of @nicoguaro, your notion of "flipped" vs "unflipped" is just an aesthetic preference on your part for how you would like to view the eigenvector. That the eig eigensolver happens to return a particular eigenvector multiplied by -1 sometimes is random. Apr 26 '17 at 16:37