Pre-Conference Course: Introduction to the Python Programming Language for Structural Dynamics Applications

Standing on the Shoulders of Giants
Rosen Plaza Hotel, Orlando, FL  |  January 29–February 1, 2024

Introduction to the Python Programming Language for Structural Dynamics Applications

Sunday, January 28, 2024 | 9:00 a.m.

Open-Source Tools have become widespread in several scientific disciplines. The free and open-source Python programming language has become a serious competitor to Matlab as a scripting language for performing scientific analyses. There are now several major Structural Dynamics Python packages that are in development or have been released, such as PyFBS, Rattlesnake Vibration Controller, SDynPy, and SDyPy. It is now possible to perform the entire Structural Dynamics workflow using only free and open-source software. Moving Structural Dynamics into open source provides numerous benefits: students can examine code to learn exactly how various algorithms work, researchers can tinker with the code to explore new solutions without having to code everything from scratch, and practitioners can execute their tests or analyses in software that isn’t simply a “black box.”

This course is designed for current Matlab users (or users with basic proficiency in other programming languages) who are interested in learning Python and how to use some of the Structural Dynamics tools that are available. This course will introduce the basics of the Python programming language with examples motivated by structural dynamics applications. A brief demonstration using Structural Dynamic packages will also be provided. Students are encouraged to attend with their own computers to work along with the tutorials. The instructors will send out instructions for installing the required tools prior to the class, so students can come prepared with the needed software already installed.

Sandia National Laboratories is a multimission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525.


Introduction to Python

  1. Introduction – 9:00 AM
    1. Discussion of Open-Source Software
    2. General overview of the Scientific Python Ecosystem
  2. Basic Python – 9:30 AM
    1. Python Syntax
    2. Data Types
    3. Operators
  3. Coffee Break – 10:30 AM
  4. Container Data Types and Program Flow – 10:45 AM
    1. Container Objects
    2. NumPy Arrays
    3. For and While Loops
    4. Exceptions
  5. Functions – 12:15 AM
    1. Function Definition and Usage
    2. Return Statements
    3. Argument Unpacking
    4. Keyword vs Positional Arguments
  6. Lunch – 1:00 PM
  7. Numerical Calculations with NumPy – 2:00 PM
    1. Indexing
    2. Broadcasting
    3. Finding and Using Documentation
  8. Plotting with Matplotlib – 3:00 PM
    1. Basic Plotting
    2. Using Subplots
  9. Coffee Break – 3:30 PM
  10. Interactive Coding Exercise: Computing FRFs from Time Histories – 3:45 PM
    1. Loading Time Data
    2. Splitting up Data into Frames
    3. Applying Window Functions
    4. Computing FFTs
    5. Computing Power Spectra and Averaging
    6. Computing H1 Estimator
    7. Packaging into a Function for reuse
    8. Function Optimizations and Vectorization
  11. Structural Dynamics Demonstration with SDynPy and Rattlesnake – 4:30 PM
    1. Load a Pre-test Finite Element Model
    2. Perform Sensor Optimization
    3. Modal Test Demonstration
    4. Mode Fitting
    5. Comparison to FEM
  12. Class Released – 6:00 PM

Dan Rohe

Dr. Daniel Rohe is a Principal Member of the Technical Staff at Sandia National Laboratories. Dan works in the Experimental Structural Dynamics department where he specializes in dynamic characterization testing using non-contact diagnostics and MIMO vibration control. Dan has spent the last few years writing software for structural dynamics applications which have been released open source as the Rattlesnake, a MIMO Vibration Controller, and SDynPy, a Structural Dynamics Python Library.

Steve Carter

Steven Carter is an experienced NVH and structural dynamics engineer with 10 years of experience in the automotive and aerospace industries. He currently works in the Experimental Structural Dynamics department where he specializes in inverse force estimation and MIMO vibration control. Steve has made significant contributions to the SDynPy Python library in the areas of Transfer Path Analysis and MIMO Vibration.

Brandon Zwink

Dr. Brandon Zwink currently works with Sandia National Laboratories as an independent contractor and has been studying in structural dynamics since 2007. Brandon worked as a full time Sandian for three years and has been contracting with Sandia for the last 8 years. Brandon recently completed his PhD with Dr. Pete Avitabile at the University of Massachusetts Lowell. Brandon has been using Python and the SDynPy library to solve real world structural dynamics problems, and he has also assisted in development of the SDynPy library by adding functionality and ensuring smooth integration with Apple computers.

The regular course fee is $500 and the student fee is $250. Course fee includes lunches, course handout material, and refreshment breaks. Lodging and additional food or materials are not included.

If the course is cancelled for any reason, the Society for Experimental Mechanics’ liability is limited to the return of the course fees.

Attendees are encouraged to bring their own laptops. None will be provided.