Introduction to Modeling

From GeoMod

Jump to: navigation, search

This class will introduce graduate students to a variety of modeling techniques used in the Earth Sciences. Given the diverse interests of Earth Science students it will introduce a wide range of models applicable to physical processes and human/stochastic behavior.

Intro to Modeling redesign of the course based on the Cutting Edge workshop on course design.

Contents

Spring 2008

    • Session 10:
    • Session 11:
    • Assignment:
      • Compare implicit and explicit solutions
        • Create two graphs with both implicit and explicit 1d solutions for the transient temperature model where dt = 1000, K = 0.01, dx = 10 and
          1. t = 1000
          2. t = 20000.
          3. Do both methods give the same result?
        • Change the timestep used in both models and determine what is the stability criteria for both models.
        • Determine how many timesteps will be necessary to get to steady state using the explicit solution.
        • What are the advantages and disadvantages of using the implicit and explicit models.

Student Projects

For student projects from previous semesters click Student Projects.

Prerequisites

There are no prerequisites for this class, except that I strongly recommend students who have taken a programming class (any programming class will do) should register for the 8000 level class and those without this background register for the 7000 version.

In addition to modeling student will learn to:

  • Program using the Python programming language.
    • This language is relatively easy to learn. The software and documentation are available on the web at www.python.org
    • We will also use the Visual module for python which provides a nice visual display of the model www.vpython.org
  • Students are expected to have an appropriate background in mathematics, specific to their dicipline. We will cover some calculus/differential equations and statistics in class as we discuss different models but students will need to understand the underlying math specific to their class project.


Course Outline

  1. In the first two weeks of class, students will learn to program some simple models in the Python programming language. This will serve as an introduction/refresher to programming, and an introduction to different modeling techniques.
  2. The key element of this class will be the development of individual models by students over the course of the semester.
    • In the fourth week students will begin presentations about the problem they wish to solve with their class project. (If you don't have anything in mind please see me for suggestions).
    • In the fifth week students will give presentation discussing the method they will employ to solve their problem. Specifically, why they chose that method and what alternative methods are available.
  3. In order to aid students in the development of their models and expose the entire class to different modeling methods, from the sixth week students will be required to
    1. post progress reports, including code, to this website.
      • Each student will update a page on this website. (See me for a username and password)
    2. read the reports and post comments on their peers on the Discussion page (see the tabs at the top of the page).

Topics

Some basics

  • Week 1
    • Introduction to physical modeling
    • Learning to program models: Create a program showing a bouncing ball using VPython.
      • The objective of this assignment is to introduce students to the basics of programing and demonstrate how physics equations can be translated into computer code.
  • Week 2
    • Distributed models - Dealing with spatial data in arrays

Other types of modeling

The order of the following topics is flexible. It will depend on the interests and priorities of the class

  • Week 3
    • Agent based models (Inspired by my love of the movie Matrix)
  • Week 5
    • Finite elements
  • Week 6
    • Arm Wrestling Tournament for Title of Greatest Programmer

Assignments

  1. Adapt the bounce.py code to give the ball a horizontal component and make it bounce between two walls.
  2. Write a list of guidelines for programming in Python based on what we have covered in class.
  3. Agents assignment

Lecture Notes and References

Useful Classes

Useful Functions

Useful Snippets of code

Modules


Useful Programs for Reference


Interesting Papers

Crone and Wilcock, 2005 - Modeling the effects of tidal loading on mid-ocean ridge hydrothermal systems.

  • poroelastic model of tidal effects on sub-seafloor hydrothermal systems.
Personal tools