Skip to content

ICCP/syllabus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 

Repository files navigation

ICCP syllabus

  • Course: PHY480/905, MSU
  • Instructor: Phil Duxbury (duxbury@pa.msu.edu)
  • TAs: Connor Glosser (glosser1@msu.edu), Jenni Portman (jenniportman@gmail.com)
  • Need help?
    • Open an issue ticket for the project's repository
    • Office hours
      • Connor: Monday, 2pm - 4pm
      • Jenni: Tuesday, 2pm - 4pm
    • Email for 1-on-1 help, or to set up a time to meet
  • Exchange weeks:
    • @MSU: February 2 - February 6
    • @TU Delft: May 11 - May 15

Table of Contents

Course description

ICCP develops students’ ability to write computer programs for simulating many-body classical and quantum physics systems. Groups choose either Fortran 90 or C++ as their coding language. The course focuses primarily on projects and learning with Socratic style discussions. We encourage students to think of their own solutions to setting up the simulation problems and coding them. All students do the same warm up project (Monte Carlo for an Ising model) and the same first joint project which involves writing a molecular dynamics code for simulation of Argon. In the second part of the course, students work on writing an advanced Monte Carlo code chosen between simulation of polymer conformations, quantum Monte Carlo or cluster Monte Carlo. For the final project(s) students may choose from among many possibilities offered by the instructors, and may even suggest their own project should they wish to investigate other areas of interest. Each group works on a different project and makes a presentation on the last day of the course. As the course involves an exchange with TU Delft in the Netherlands, students from MSU receive $300 to assist with their air ticket. Often MSU graduate students can cover the rest of their airfare from either their research group, from the College of Natural Science or from the Graduate School. The Delft University of Technology covers hotel costs and offers a per diem of about 20 euros while students visit Delft to participate in the course.

Prerequisites

  • Basic programming skills in a language like Fortran, C, or C++
  • Working understanding of numerical methods
  • Understanding of quantum and statistical mechanics at the junior/senior undergraduate level

These won't be enforced by the instructor, but you'll likely find the course difficult without understanding them.

Course overview

  • Project 0: Ising model
    • Introduction to Fortran. Investigation of ferromagnetic dependence on temperature. The Metropolis algorithm. Lattices & boundary conditions.
  • Project 1: Molecular dynamics
    • Numerical integration of the EoM for a model of argon gas. Minimum image criterion and periodic boundary conditions in a continuum. Free energy, pair correlation, and temperature calculations. Data blocking and energy fluctuations.
  • Project 2: Advanced Monte Carlo
    • Ising model revisit: the Wolff algorithm, critical phenomena, and data structures
    • Polymer conformations: the Rosenbluth algorithm(s), convergence, on- and off-lattice models
    • Variational Monte Carlo: the He/H2 ground states
  • Project 3: Students' choice
    • Lattice Boltzmann
    • Tight-binding
    • Percolation
    • DTFD quantum mechanics
    • etc.

Due dates

Project ICCP PHY480
Project 0: Ising model Friday, January 30, 2014 Wednesday, February 18, 2014
Project 1: Molecular Dynamics Sunday, March 1, 2014 TBA
Project 2: Advanced Monte Carlo Sunday, March 29, 2014 TBA
Project 3: Students' Choice Sunday, May 3, 2014 TBA

Grading

  • Projects & reports – 75%
  • "Final" - 25%
    • Students participating in ICCP give a final presentation at the end of their visit to TU Delft
    • Otherwise, students have a one-on-one oral examination during finals week

Homework/projects

Project info

Requirements

To submit a completed project, simply issue a pull request on the original repository before the due date. Your branch should contain:

  1. The source code you developed to solve the problem in the src/ directory and,
  2. A written report of your findings in the report/ directory, typeset in LaTeX

Each project repository contains a skeleton LaTeX file for you to fill in with your report. Your report should follow the style of a research paper (abstract, intro, etc.) and should contain about five or six pages. Please remember to include all figures in your submission branch!

Workflow

  1. To start, fork a project repository
  2. Clone the repository to your computer.
  3. Modify the files and commit changes to complete your solution.
  4. Push/sync the changes up to GitHub.
  5. Create a pull request on the original project repository to turn in the assignment. You can continue to submit changes after you create your pull request -- simply commit and push them.

Submission

Your pull request should contain both your project and LaTeX source code in separate sub directories; e.g.

molecular-dynamics/
├── report/
│   ├── figures/
│   │   ├── energy.pdf
│   │   └── pair_corr.pdf
│   └── md_report.tex
└── src/
    ├── Makefile
    ├── molecular_dynamics.f90
    └── parameters.f90

Please do not include executables or compiled PDFs (however we need the PDFs corresponding to your images to produce your document, so you should absolutely include them!) We will compile both your program and your report on the HPCC, so please test everything there before submitting.

External links

Required reading

Beginner materials

In case you need a refresher...

Tools

GitHub help

Statements on Plagiarism

From MSU's statement on Academic Integrity:

Plagiarism (from the Latin plagiarius, an abductor, and plagiare, to steal) defined by the White House Office of Science and Technology Policy on Misconduct in Research as “ . . . the appropriation of another person’s ideas, processes, results or words without giving appropriate credit.” At MSU, General Student Regulation 1.00 states in part that “no student shall claim or submit the academic work of another as one’s own.” (For the complete regulation, see Protection of Scholarship and Grades.) Plagiarism may be accidental or blatant and there is even self-plagiarism. However, students are held to the same standards whether or not they knew they were plagiarizing or whether or not they were plagiarizing themselves or someone else.

Of course you're free to collaborate with others while working on your projects--that's the whole point of ICCP, after all--just give credit where credit is due. Please respect the terms of use and/or license of any code you find, and if you implement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.

License

Creative Commons License
This work and all other materials under https://github.com/ICCP are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (where applicable). Adopted from the advanced-js course syllabus found here.

About

Course syllabus for the joint International Course in Computational Physics class at MSU/TU Delft

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •