# Global stiffness matrix from element stiffness matrices for a thin rectangular plate (Kirchhoff plate)

I have the element stiffness matrix for a thin "kirchhoff" plate. The plate is 3 [m] x 5 [m] and is simply supported on all edges. It's thickness is 0,2 [m]. On the plate there acts a constant load p = 5 [kN/m²]. For mu = 0,2 and E = 30000 [MPa] the displacement in the midpoint equals 0,168 [mm].

What's the most efficient or quickest way and how to implement or code the assembly of finite elements of 0,5 [m] x 0,5 [m] for this plate and get the global stiffness matrix, the results as the nodal displacement vector and the nodal force vector?

Hints are appreciated. Thanks.

Same question on Engineering stackexchange

Same question on stackoverflow

EDIT: If somebody knows an open source free code or implementation for this very specific program written in Java, C++ or even in VBA, then this would be an answer for the question too!

EDIT: I found here a code that should work fine. How difficult is it to translate this code into another procedural programming language? How much pain is involved?

• You have a mesh with 6x10 elements and you worry about efficiency of your code? That's such a small problem that you're not even going to be able to measure the time it takes to assemble the matrix... – Wolfgang Bangerth Sep 9 '20 at 15:21
• @WolfgangBangerth I'm not worried about the efficiency of my code, which still hasn't been born or brought to life yet, but I'm worried about a simple or a straight forward way of bringing the code into existence. A code that will do the job of finding the nodal displacements and forces... And yes, first I need to create a code that does the job for 6x10 elements and later for more (quadratic/square) elements... – Ahmed Hossam Sep 9 '20 at 15:35
• Ah, I see. Have you looked at the corresponding lines in other codes? There are of course hundreds, maybe thousands of other codes that do exactly this. You might find yourself inspired by looking at what others have done; in fact, you might find yourself not actually wanting to re-invent the wheel given that others have done what you want to do, and have done it in greater generality and more features. – Wolfgang Bangerth Sep 9 '20 at 17:32
• @WolfgangBangerth ok, where to look for free (just basic kind of) source code that does this? – Ahmed Hossam Sep 9 '20 at 18:01
• I think you need to do a bit of work yourself, not hope that everything is spoon fed to you. We've pointed to numerous resources. Have you looked at them? It's not like computer languages are so vastly different that you can't get an idea of how to do things even from looking at a programming language you're not familiar with. – Wolfgang Bangerth Sep 9 '20 at 22:12

What you are looking for is a Discrete Kirchhoff Quadrilateral plate or DKQ plate. Seems you are looking for a very straight forward formulation that simply give you the global stiffness matrix. But i'm afraid that most codes I've seen are dealing with integration and transformation. You can search for DKQ source code. There are documents for java which would be very helpful if you want to code it yourself. There are also C++ implementations of such element which you could find on the web, just google it. The codes i know are mostly using Gauss integration for calculating local stiffness matrix then convert it to global stiffness matrix. However this is the Java document I mentioned above: