Have you ever asked yourself how structural software essentially works? Just keep reading, and you will find how we can use the SkyCiv platform and Python programming through an example developed in a classroom of Structural Analysis.
A quick review of structural analysis
We often use software available to solve a structural analysis, which results in forces, displacement, stresses, etc. In simple terms, the problem drops into the following form:F=K∙d
F=K∙d
Where:
- F is the vector forces
- K is the structure stiffness
- d is the displacement field
The main goal is to convert a continuous structure into discrete “pieces” of an assembly and analyze it, obtaining forces and displacements. A general path has to be followed:
- Preprocess: the first step in structural analysis, where we get the structure data, geometry, material properties, and loads and finalize when the global stiffness matrix is constructed.
- Process: where we solve the previous expression, F=K∙d F=K∙d. Some methods generally accepted to solve the linear equations system is Gauss-Jordan, Gaussian elimination, etc.
- Postprocess: the final part to display the results in terms of forces and stress, if necessary.
Planar frame example
The case example consists of a regular planar frame (Figure 1).
Figure 1. Structural 2D Frame Example
The element’s properties for columns, beams, and materials are:
Structural element | Area, (mm^2) | Inertia, (mm^4) |
---|---|---|
Columns | 93,000 | 720,000,000 |
Girders | 140,000 | 2,430,000,000 |
Concrete properties:
- Material strength, f′c=20MPa f′c=20MPa
- Young’s Modulus, E=17000MPa E=17000MPa
Python programming and SkyCiv Modelling
Now is the time to start working in parallel with modeling in Python and SkyCiv. Figure 2 shows the input data (nodes, elements, degrees of freedom, local axis orientation) for the code developed in Python. You can check the file yourself and run the example through this link.
Figure 2. Local stiffness matrix function
The Python file uses a functional programming paradigm because it is easy to explain and develop in the classroom. This consists of dividing and conquering, modularizing the code construction and its methods.
When coding the method, the most important is to define the mathematical formulation to apply. We will use the Euler Bernoulli Beam:
The differences in values (Python Script and SkyCiv S3D) are minor, with approximately 2.90% as the mean.
2. Axial forces
Figure 5. Axial forces developed into the frame
Q, kN, SkyCiv | Q, kN, Python Script | (Delta )% |
---|---|---|
109.056 | 109.519 | 0.423 |
62.857 | 62.616 | 0.383 |
41.589 | 43.252 | 3.845 |
13.113 | 11.709 | 10.707 |
81.143 | 81.384 | 0.296 |
178.944 | 178.480 | 0.2593 |
The differences in values (Python Script and SkyCiv S3D) are minor, with approximately 2.65 % as the mean.
3. Shear forces
Figure 6. Shear forces developed into the frame
Q, kN, SkyCiv | Q, kN, Python Script | (Delta )% |
---|---|---|
35.318 | 35.039 | 0.790 |
35.318 | 35.039 | 0.790 |
-11.569 | 13.252 | 12.700 |
-11.569 | 13.252 | 12.700 |
62.857 | 62.616 | 0.383 |
-81.143 | -81.384 | 0.296 |
46.199 | 46.903 | 1.501 |
-97.801 | -97.097 | 0.720 |
41.569 | 43.252 | 3.891 |
41.569 | 43.252 | 3.891 |
54.682 | 54.961 | 0.508 |
54.682 | 54.961 | 0.508 |
The differences in values (Python Script and SkyCiv S3D) are minor, with approximately 3.22% as the mean.
4. Bending moments
Figure 7. Moments developed into the frame
Q, kN-m, SkyCiv | Q, kN-m, Python Script | (Delta )% |
---|---|---|
-130.993 | -133.213 | 1.667 |
80.916 | 77.022 | 4.812 |
37.358 | 42.713 | 12.537 |
-32.057 | -36.797 | 12.881 |
-32.057 | -36.797 | 12.881 |
-141.776 | -149.400 | 5.103 |
43.558 | 34.309 | 21.234 |
-266.054 | -266.859 | 0.302 |
107.639 | 110.109 | 2.243 |
-141.776 | -149.400 | 5.103 |
169.676 | 173.016 | 1.930 |
-158.415 | -156.749 | 1.052 |
The differences in values (Python Script and SkyCiv S3D) are minor, with approximately 6.81% as the mean.
5. Conclusion
This post has served as a test that the SkyCiv platform is an excellent resource for educational purposes due to its powerful capacities in structural analysis. Using Python programming and comparing the results with accurate software as SkyCiv, is a must that every engineering course must include in its core content.