Linear Modelling Assignment 1
Linear Modelling Assignment 1
This report discusses the method that was used to compute (with a computer program)
the nodal displacements & the strain and stress in the elements of a bar element. Fur-
thermore, this report will discuss the two most important assumptions that were used
during the computation of the results and their impact. Then the produced computer
program will be verified with Abaqus simulations for a 4 element bar element. Lastly,
there will be a discussion on the effect of a constant bar area and the influence of
discretization of such a bar element[1].
The code method consists of several crucial steps. These steps are:
• Step 1: Define the input of the to be calculated bar element. This consists of:
– Bar element length (L) in meters
– Number of discretization elements (Nelem)
– Young’s modulus (E) in Pascals
– Height of the bar element at begin and end location w1 and w2 in meters
– Thickness of the bar element (t) in meters
– Load applied on the rightmost element (F) in Newton
– Boundary conditions on nodes (BC), this input, is clearly defined in the code.
It consists of the node numbers in one list, and the applied displacements
on these nodes in another list.
– Note: meaning/location of the variables is clarified by Figure 1.1
1
1.2. Method of Computation 2
• Step 2: Define the x_locations of the nodes, the areas of the elements and the
stiffnesses of the elements.
• Step 3: In this step, the node, and element numbering is defined. For simplicity,
we chose the node, and element numbering counting from left to right. Which is
graphically represented by Figure 1.2.
Furthermore, this node and element numbering can be used to define the con-
nectivity matrix. The connectivity matrix (C) can now found to be given by Equa-
tion 1.1.
1 2
2 3
C=
3 4
(1.1)
... ...
Nelem Nelem + 1
• Step 4: Setting up the local stiffness matrices of elements (Kilocal , ”i” indicates the
element number), and using the connectivity matrix to obtain the global stiffness
matrix. Since the stiffness matrix of each element is of the form:
( )
ki −ki
Kilocal = (1.2)
−ki ki
1.3. Assumptions of the Method 3
The global stiffness matrix will be a Nelem + 1 by Nelem + 1 matrix, with the rows
and columns corresponding to the node numbers of the bar element and the cor-
responding stiffnesses.
• Step 5: Apply Boundary Conditions Initially, without implementing the Bound-
ary Conditions the global stiffness matrix is symmetric, and thus non-invertible.
In this step, the Boundary Conditions that were given as input are used to make
the global stiffness matrix invertible, this is needed to compute the displacement
vector (which is needed to compute the strain and stress of the bar element).
If a Boundary Condition is applied to a node Nelem , the global stiffness matrix, and
displacement, (applied) force vector change as follows:
In this matrix equation, the first matrix is the global stiffness matrix, the second
column vector is the displacement vector, the third column vector is the (applied)
force vector, and the last column vector is the ”additional force vector” that is
isolated from the global stiffness matrix due to the Boundary Condition application.
This additional force vector is the ”step” that makes the global stiffness matrix
invertible.
• Step 6: Vector result calculations Now the displacement, strain, and stress
vectors of the bar element can be obtained. This is done by first obtaining the
displacement vector from the equation above, then the strain of each element can
be obtained by Equation 1.3. The stress on each element is then simply obtained
by multiplying the strain of each element with the Young’s modulus (Equation 1.4).
ui+1 − ui
ϵ= (1.3)
Lelement,original
σ =ϵ∗E (1.4)
Note: The explanation of the steps above is the theory behind the code, to better
understand the way this method is programmed, please look at the code.
From this figure it can also be seen, when the number of discretization elements
is increased, this estimation error gets smaller and smaller.
• Linear deformation of individual elements The deformations are assumed to
be linear, which implies constant stiffness. However, in one element, this assump-
tion doesn’t hold due to the varying cross-section. It’s intuitive when considering
the original configuration: as we move toward the end of the bar, deformations
increase while stiffness decreases. Although this may slightly underestimate dis-
placement, the system still tends to overestimate overall due to the larger errors
in regions with smaller cross-sections.
The same simulation in Abaqus resulted in the results given in Table 1.3 and Table 1.4.
Additionally, the geometry that is simulated and colorplots of displacement, strain, and
stress results are shown in Appendix A.
1.5. Constant bar element case 5
When comparing the results of the Python code with the results obtained by Abaqus, it
can be seen that the results are very similar. The only after the 5th /6th decimal or so, de-
viations start to occur, which are most likely coming from the calculation methods used
by Abaqus and Python. This is for examples rounding of numbers when inverting matri-
ces in the NumPy module and general rounding of the numbers during calculations in
NumPy. We checked more cases (more elements and different Boundary Conditions),
which also indicated this fact, as the results of both the Python code and Abaqus re-
mained really close to each other. This implies that the Python code is hereby verified
and can be used for similar cases in which certain assumptions that were implied by
using this theory are valid.
[1] Peeters, D., AE4AMS003 Linear Modelling Assignment 1: bar element, 2024.
6
A
7
8