Project 6 · Earthquake science

Why earthquakes pick certain buildings

In 1985 an earthquake spared some Mexico City buildings and destroyed others. Height was part of why.

Math
Algebra II, trigonometry
You need
A laptop and published seismic data
Tools
Python or a spreadsheet; published seismology data
Solver
Wave, 2D

The question

Soft sediment over rock traps seismic waves at a natural period. How do depth, width and wave speed set that period, and when does the quick estimate T = 4H/c stop being good enough?

Objectives

Twelve weeks, in the four stages every TopEdu project follows. Your mentor reviews each checkpoint before you move on.

  1. Weeks 1 to 3

    Learn to trust the model

    Run 06_basin_resonance.py until its CHECK line says PASS, and explain every line of it to your mentor. Then reproduce a known answer: Modes satisfy ω² = c²π²(m²/W² + (n − ½)²/H²).

    Checkpoint: you reproduce a known answer and report how close you got.

  2. Weeks 4 and 5

    Ask your own question

    Narrow the question above to one sentence that could turn out to be wrong, and write your prediction before you run anything. The first experiments below are a place to start.

    Checkpoint: a one-page plan with your question and prediction.

  3. Weeks 6 to 9

    Run it, then measure the world

    Model a basin cross-section with rock on three sides and a free surface on top, measure its period over many shapes, then map the error of the quick estimate. Then step away from the screen: compare with the well-documented 1985 Mexico City lakebed, where shaking near a 2-second period damaged mid-height buildings; compare with published data for another basin.

    Checkpoint: one chart comparing your model with reality.

  4. Weeks 10 to 12

    Explain the gap, and share it

    Work out why your model and your measurements disagree, test at least one explanation, and write it up yourself. Say which numbers came from the starter and which from the lab. Keep the honest limit in view: wave speed is the same everywhere and the basin is a rectangle, so this is a first-order explanation and not a hazard estimate. Do not present it as a prediction for a real place.

    Checkpoint: a final paper, your code and a ten-minute talk.

The data

What the lab lets you change, how the project was checked before we listed it, and what the starter prints on a laptop.

Settings in the online lab

SettingRangeStarts at
Basin width100 to 2000 m400
Sediment depth20 to 100 m40
Shear wave speed50 to 400 m/s80

Checked on the research solver

Solver (Wave, 2D)fundamental period 1.962 s
Known answerexact 1.961 s; quick estimate 4H/c = 2.000 s
Error0.04% (limit 1.00%): passed

What the starter prints

From the run that built this page. Timings depend on your computer; the CHECK line must say PASS.

basin 400 m wide, 40 m deep, c = 80 m/s
simulated period 1.961 s, exact 1.961 s, quick estimate 4H/c = 2.000 s
CHECK period against the exact formula: error 0.01% -> PASS (limit 1%)
  width/depth   1: 4H/c is off by 123.6%
  width/depth   2: 4H/c is off by  41.4%
  width/depth   4: 4H/c is off by  11.8%
  width/depth   6: 4H/c is off by   5.4%
  width/depth  10: 4H/c is off by   2.0%
  width/depth  20: 4H/c is off by   0.5%
  width/depth  50: 4H/c is off by   0.1%
Error of the quick estimate 4H/c against basin width over depth
Motion of the middle of the basin surface over time

The starter code

One Python file that needs only numpy and matplotlib. Run python3 06_basin_resonance.py --show to see the plots. How to set up.

The model

A valley of soft sediment sits in rock. Shear waves bounce between the rock walls and floor and the free ground surface, so the valley rings at a natural period. Buildings whose own sway period is close to it shake hardest.

This model is a rectangle W wide and H deep. Ground motion u obeys the wave equation with u = 0 at the rock (the two sides and the floor) and no stress at the surface. Its slowest ring has period T = 2 pi / omega, omega = c pi sqrt(1/W^2 + 1/(2H)^2). Engineers' quick estimate ignores the width: T = 4H / c.

What it does

  • Stage 1: run this file. It shakes the basin, listens at the middle of the surface, and checks the period it hears against the exact one. The CHECK line should say PASS.
  • Stage 2: map where the quick estimate is good enough, and compare with a real, documented basin.

Your first experiments

From the YOUR TURN list at the bottom of the file. Write your prediction in your log before you run each one.

  1. Before running: at what width/depth does 4H/c reach 10% error? Read it off the plot and check with simulate().
  2. The formula assumes a rectangle. Make the floor slope (set u = 0 below a slanted line each step) and see how the period moves. Explain why.
  3. Mexico City, 1985: look up published lakebed depth and shear wave speed. Does the model's period come near the roughly 2 s that damaged mid-height buildings? Say clearly that this explains, and does not predict.
  4. Rule of thumb: a building's sway period is about 0.1 s per storey. Which heights match your basin?

Download 06_basin_resonance.pyAll ten (.zip)Instructions (PDF)

The real world

Compare with the well-documented 1985 Mexico City lakebed, where shaking near a 2-second period damaged mid-height buildings; compare with published data for another basin.

The honest limit

Wave speed is the same everywhere and the basin is a rectangle, so this is a first-order explanation and not a hazard estimate. Do not present it as a prediction for a real place.

Want to work on this one?

Members run it on the research solver in the lab and choose a mentor to guide them.