CIVE50003 Computational Methods II - Coursework 2025 - 140225 V4
CIVE50003 Computational Methods II - Coursework 2025 - 140225 V4
You are asked to investigate the dynamic response of a simplified model of a cable-
stayed bridge shown in Fig. 1. The structure shown is an idealisation of the main
portion of the Theodor Heuss Bridge in Düsseldorf. It is famous for being the first
cable-stayed bridge in Germany, built between 1953 and 1957.
You will learn more about bridges and dynamics in years 3 & 4, the aim here is to
write structural analysis software and to develop an intuition for dynamic behaviour.
1
Fig. 1 – Idealisation of the Theodor Heuss Bridge in Düsseldorf, Germany
2
The Matlab code that you submit must make use of object-oriented programming
through the creation of a single Class Bridge with appropriate properties and methods
(constructor, assembler, various FE solvers and post-processors / plotters). This Class
should then be instantiated inside other calling scripts, one per Q below. A premium is
placed on minimising code repetition and good code structure. You may find it
beneficial to simply get an FE model running correctly before turning it into a Class.
Q1. Perform a static linear stress analysis of the structure under the action of the
midspan point load P. Verify that the reaction forces satisfy global equilibrium.
Report the vertical sag at M and the horizontal sway at E. Plot the deformed shape of
the structure and comment.
Note: the vertical sag at M should be 6.8018 mm and horizontal sway at E should be
1.1586 mm. Make sure you can compute these values exactly (for validation only,
almost nothing in civil engineering is ever known to within 10-4 mm or 0.1 μm!).
Q2. Perform a linear frequency analysis to compute all of the eigenvalues (how many
are there?) and plot the eigenmodes corresponding to the lowest four frequencies and
comment. Compute also the total weight of the structure.
3
Note: the lowest four vibration frequencies should be 0.47347, 0.63481, 0.97582 and
1.2728 Hz. The highest frequency should be 205.7568 Hz. The structure should weigh
7716581.2295 kg. Make sure you can compute these values exactly.
d t
1
2t
( d t +t − d t −t ) and d t 2 (d t +t − 2 d t + d t −t )
1
t
respectively to express {d}t+Δt (displacement vector at a time step Δt in the future)
explicitly in terms of its present {d}t and previous {d}t–Δt values. Convince yourself
that this gives:
−1
d t +t = 2 m + c f t − k − 2 m d t − 2 m − c d t −t
1 1 2 1 1
t 2t t t 2t
In what follows, you may assume that:
• The damping matrix [c] is given by
c = m + k where α = 0.0583 and β = 3.6×10-5
which are the Rayleigh damping parameters to get 1% damping for relevant
vibration modes (more about this in your 3rd year dynamics module).
• The time increment Δt does not exceed
1 2
t = tcr where tcr =
2 max
where ωmax is the highest cyclic vibration frequency (in radians/second) from
Q2. If you exceed Δtcr (a ‘critical’ time step), your solution for {d}t may diverge
because explicit integration schemes are only conditionally stable.
• For t ≤ 0, initialise the displacement vector to zero:
d t =0 = d t =−t = 0
4
Q3. In Matlab, create a vector of times ts from 0 to 50 seconds in steps of Δt. Create
a second vector fs that computes P·(1 + 0.1·sin(Ωt)) at each time point (i.e. a time-
history record for a ‘cyclic truck’ point load that is vibrating vertically at an angular
frequency of Ω in radians / second). This record is fed into the correct dof of {f}t, all
others zero. You must use [kFF], [cFF], [mFF], {dF} and {fF} during integration.
Q4. Download the ElCentro1940.m and LomaPrieta1989.m files and explore them.
Given an input Δt, they will output horizontal (x-direction) and vertical (y-direction)
ground acceleration records ax(t) and ay(t) in m/s2 for two strong earthquakes that hit
California in the 20th century. Add these into the external loading vector as
f t = m (x ax ( t ) + y ay ( t ) )
where {ι}x is a vector of 1’s in the locations of only x-direction dofs and 0’s
elsewhere, while {ι}y is a vector of 1’s in the locations of only y-direction dofs and 0’s
elsewhere (these are known as influence vectors). No other loading should be present
(ignore the truck), and you must use the full unpartitioned [k], [c], [m], {d} and {f}
during integration.
END
AJS Feb’ 25 with very special thanks to Alfredo Camara
5
6