GithubHelp home page GithubHelp logo

williamgilpin / cphy Goto Github PK

View Code? Open in Web Editor NEW
136.0 7.0 67.0 375.14 MB

Class materials for computational physics course

License: Apache License 2.0

Jupyter Notebook 52.30% Python 0.01% Shell 0.01% HTML 47.70%

cphy's Introduction

Overview of Methods in Course

(Left to Right): Avalanche activity cascades in a sandpile automaton; a vortex street formed by flow past a cylinder; and Turing patterns in a reaction-diffusion model. All simulations from the course homeworks; a higher-resolution video may be viewed here

Computational Physics

Summary

Materials for computational physics course, taught by William Gilpin.

This course aims to provide a very broad survey of computational methods that are particularly relevant to modern physics research. We will aim to cover efficient algorithm design and performance analysis, traditional numerical recipes such as integration and matrix manipulation, and emerging methods in data analysis and machine learning. Our goal by the end of the class will be to feel comfortable approaching diverse, open-ended computational problems that arise during research, and to be ready to design and share new algorithms with the broader research community.

The class website is located here.

  • If you are enrolled in 329 at UT, the syllabus and calendar are here.
  • If you are enrolled in 381C at UT, the syllabus and calendar are here.
  • For both UT courses, the Discussions page may be found here.

Contents

Many links below direct to Google Colaboratory, and can be run-in-browser without any installation as long as you are signed into a Google account. To download the raw source files, please refer to the GitHub repository

Homework Assignments

Lecture Slides

[video]

[video]

[video]

[video]

Notes

Laboratory Exercises

Example Final Projects

Usage and improvements

If you are teaching a similar course, please feel free to use any or all of these materials. If you have any suggestions for improvements or find any errors, I would very much appreciate any feedback.

For errors or typos, please consider opening an issue or submitting corrections as pull requests on GitHub.

For students, course-related questions are best posted on GitHub as Discussions or Issues on the course repository; for other issues, I can be reached via email

Requirements

We will primarily use Python 3 with the following packages

  • numpy
  • matplotlib
  • scipy
  • scikit-learn
  • jupyter

For projects and other parts of the class, you might also need

  • ipykernel
  • scikit-image
  • umap-learn
  • statsmodels
  • pytorch
  • jax
  • numba

Attributions

Portions of the material in this course are adapted or inspired by other open-source classes, including: Pankaj Mehta's Machine Learning for Physics Course, Chris Rycroft's Numerical Recipe's Course, Volodymyr Kuleshov's Applied Machine Learning course, Fei-Fei Li's Deep Learning for Computer Vision course, Lorena Barba's CFD course and Jim Crutchfield's Nonlinear Dynamics course

<script async src="https://www.googletagmanager.com/gtag/js?id=G-37RSFCXBQY"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-37RSFCXBQY'); </script>

cphy's People

Contributors

abao1999 avatar abbyperryman avatar aditipujar avatar bluejelli avatar bryand-ut avatar clobrien-ut avatar erfanhamdi avatar gpsehr avatar klanderson42 avatar laurenlarson avatar potatoasad avatar ravikoka avatar shoshanareich avatar shvnmttl avatar williamgilpin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cphy's Issues

Use Taichi (instead of numba and jax) to write real-time simulations in Python?

@williamgilpin Hi, thank you very much for posting your course materials on GitHub, the topics covered in this course are really interesting.

I see there are quite a few animations in this repo, like GOL, Karman vortex, Gray-Scott model, etc. These models are too compute-intensive for Python to animate in real-time, and on the course homepage, you suggested using Numba and Jxx to accelerate. I would suggest using Taichi as a more suitable option since Taichi's JIT can compile your Python code and execute it on multi-CPU cores and GPUs. See this doc for an introduction.

And there are lots more physical simulations done by the Taichi community:
https://github.com/taichi-dev/awesome-taichi

Hope this information could help you better enjoy the visualizations.

Best.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.