FE model updating in Python
Bjørn T. Svendsen
This document provides a brief description of the analysis framework for the implementation of
sensitivity-based finite element (FE) model updating in Python. The analysis framework is
implemented using Python combined with the numerical FE model program ABAQUS and validated
by considering a simple numerical case study.
Please cite both the original research paper which the code was developed for  and the code , if
used for research purposes.
 B. T. Svendsen, Ø. W. Petersen, G. T. Frøseth, and A. Rønnquist, “Improved finite element
model updating of a full-scale steel bridge using sensitivity analysis,” Struct. Infrastruct. Eng.,
pp. 1–17, Jul. 2021, doi: 10.1080/15732479.2021.1944227.
 B. T. Svendsen, “FE model updating in Python.” 2020. doi:
2.1. Installation and requirements
The files can be used directly by downloading or cloning the repository. The analysis framework is
established using Python version 3.7.2, including Scipy version 1.3.2. The numerical FE model is
established in ABAQUS/CAE release 2017. Note that ABAQUS/CAE is required to run the files.
2.2. File descriptions
Table 1 provides a brief description of the relevant files to run the FE model updating in Python.
Table 1: Description of files.
Folder containing the numerical FE model to perform model updating on and
results to update the FE model against.
Main file for performing the FE model updating. Results are stored in the file
Main file for performing postprocessing of the results from the FE model
updating. The file imports the results from info.pkl and creates result figures.
ABAQUS script file for performing analysis and postprocessing of results of
the simply supported bam subjected to model updating. The file takes in
updated parameter values established from the file 01_run.py.
ABAQUS script file for performing perturbation analysis and postprocessing
of results of the simply supported beam subjected to model updating. The file
takes in updated parameter values established from the file 01_run.py.
Assembly of relevant functions written in Python 2 (required by ABAQUS).
Assembly of relevant functions written in Python 3.
3. ANALYSIS WORKFLOW
Figure 1: The analysis workflow.
4. NUMERICAL CASE STUDY
The numerical case study consists of a simply supported beam, discretized in 10 elements, shown in
Figure 2. The model is parameterized in three parameters: stiffness,
, and two point masses
, respectively. Model updating is performed on the first four modes considering natural
frequencies only, resulting in a total of 4 outputs yielding an overdetermined system. Two control
modes are included for model quality assessment. 50% local and no global parameter bounds are
enforced. Mode identification is based on modal assurance criterion (MAC) numbers. The results
obtained for the natural frequencies and parameters are shown in Table 2. The numerical model is
established in ABAQUS/CAE release 2017 and the analysis framework is established using Python
version 3.7.2, including Scipy version 1.3.2.
Figure 2: Simply supported beam considered for the numerical case study.
Table 2: Results for the simply supported beam considered for the numerical case study.
The results obtained by considering the objective function, sensitivity matrix and MAC numbers are
shown in Figure 3, Figure 4 and Figure 5, respectively.
Figure 3: Objective function.
Figure 4: Sensitivity matrix.
Figure 5: MAC matrix.