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=Kd

F=K∙d

$F = K bullet 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=Kd F=K∙d$F=Kbullet 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, fc=20MPa     f′c=20MPa$f'c = 20 MPa$
• Young’s Modulus, E=17000MPa E=17000MPa$E = 17000 MPa$

## 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:

Copy to Clipboard

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.