Difference between revisions of "Simulation Methods in Physics I WS 2020/2021"

From ICPWiki
Jump to navigation Jump to search
 
(13 intermediate revisions by 2 users not shown)
Line 15: Line 15:
 
The lecture is accompanied by hands-on tutorials which will take place via webex (details will follow). They consist of practical exercises at the computer such as small programming tasks, simulations, visualization and data analysis.
 
The lecture is accompanied by hands-on tutorials which will take place via webex (details will follow). They consist of practical exercises at the computer such as small programming tasks, simulations, visualization and data analysis.
 
The tutorials build upon each other, therefore continuous attendance is expected.
 
The tutorials build upon each other, therefore continuous attendance is expected.
 +
 +
== Course material ==
 +
 +
All course material (general info, lecture recordings, worksheets, ...) will be distributed via ILIAS (you join the ILIAS groups upon registration through C@MPUS)
  
 
== Lecture ==
 
== Lecture ==
Line 35: Line 39:
 
: Finite-size scaling, universality concept, how to determine critical exponent with lattice spin models
 
: Finite-size scaling, universality concept, how to determine critical exponent with lattice spin models
  
<!--
 
 
=== Course Material ===
 
=== Course Material ===
  
Line 43: Line 46:
  
 
|-
 
|-
|1||2019-10-17 || Course Content, Organization, Introduction || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture01_slides.pdf Slides] ||
+
|1||2020-11-05 || Organization, Introduction, MD Basics  || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture01_slides.pdf Slides] ||
  
 
|-
 
|-
|2||2019-10-24 || MD: Integrators || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture02_notes.pdf Lecture Notes] ||
+
|2||2020-11-12 || Integrators Chaos, LJ-Potential, Units || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture02_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|3||2019-11-07 || Chaos, LJ-Potential, Units || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture03_notes.pdf Lecture Notes] ||
+
|3||2020-11-19 || Basics of Statistical Mechanics || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture03_notes.pdf Lecture Notes] ||
  
  
 
|-
 
|-
|4||2019-10-31 || Basics of Statistical Mechanics, Chaos || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture04_notes.pdf Lecture Notes] ||
+
|4||2020-11-26 || PBC, cell-lists, simple MD || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture04_notes.pdf Lecture Notes] ||
  
  
 
|-
 
|-
|5||2019-11-14 || PBC, cell-lists, simple MD || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture05_notes.pdf Lecture Notes] ||
+
|5||2020-12-03 || Observables, Brownian Motion, Diffusion || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture05_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|6||2019-11-21 || Observables, Brownian Motion, Diffusion || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture06_notes.pdf Lecture Notes] ||
+
|6||2020-12-10 || Diffusion, Green-Kubo, Langevin Dynamics || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture06_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|7||2019-11-28 || Diffusion, Green-Kubo, Langevin Dynamics || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture07_notes.pdf Lecture Notes] ||
+
|7||2020-12-17 || Thermostats part 1  || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture07_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|8||2019-12-05 || Thermostats part 1 || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture08_notes.pdf Lecture Notes] ||
+
|8||2021-01-07 || Error analysis || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture08_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|9||2019-12-12 || Error analysis || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture09_notes.pdf Lecture Notes] ||
+
|9||2021-01-14 || Thermostat part2 + Intro Monte Carlo || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture09_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|10||2019-12-19 ||Thermostat part2 + Intro Monte Carlo|| [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture11_notes.pdf Lecture Notes] ||
+
|10||2021-01-21 || Monte-Carlo Method and critical phenomena || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture11_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|11||2020-01-09 || Monte-Carlo Method and critical phenomena|| [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture12_notes.pdf Lecture Notes] ||
+
|11||2021-01-28 || Critical Exponents || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture12_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|12||2020-01-16 ||Critical Exponents || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture13_notes.pdf Lecture Notes] ||
+
|12||2021-02-04 || Finite Size Scaling || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture13_notes.pdf Lecture Notes] ||
  
 
|-
 
|-
|13||2020-01-23 || Finite Size Scaling || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture14_notes.pdf Lecture Notes] ||
+
|13||2021-02-11 || Reweighting || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture14_notes.pdf Lecture Notes] ||
 +
 
 +
|}
  
|-
 
|14||2020-01-30 || Reweighting || [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/lecture15_notes.pdf Lecture Notes] ||
 
  
|-
 
|15||2020-02-06 || Research @ICP and thesis topics|| [https://www.icp.uni-stuttgart.de/~icp/html//teaching/2019-ws-sim_methods/thesis_topics.pdf Slides] ||
 
|}
 
-->
 
 
=== Script ===
 
=== Script ===
 
A '''''preliminary''''' version of the script can be downloaded {{DownloadExt|/teaching/2015-ws-sim_methods/script.pdf|here}}.
 
A '''''preliminary''''' version of the script can be downloaded {{DownloadExt|/teaching/2015-ws-sim_methods/script.pdf|here}}.
Line 97: Line 96:
 
=== Recommended literature ===
 
=== Recommended literature ===
 
<bibentry>frenkel02b,allen87a,rapaport04a,landau05a,newman99a,thijssen07,tuckerman10</bibentry>
 
<bibentry>frenkel02b,allen87a,rapaport04a,landau05a,newman99a,thijssen07,tuckerman10</bibentry>
 +
We recommend that you search the university library for ebook versions of these books
 
=== Useful online resources ===
 
=== Useful online resources ===
  
Line 110: Line 110:
 
* [http://homepage.tudelft.nl/v9k6y/imsst/index.html Introduction to Molecular Simulation and Statistical Thermodynamics (pdf textbook from TU Delft)]
 
* [http://homepage.tudelft.nl/v9k6y/imsst/index.html Introduction to Molecular Simulation and Statistical Thermodynamics (pdf textbook from TU Delft)]
  
* Be careful when using Wikipedia as a resource. It may contain a lot of useful information, but also a lot of nonsense, because anyone can write it.
 
  
 
== Tutorials ==
 
== Tutorials ==
 
<!--
 
-->
 
 
  
  
Line 122: Line 117:
  
 
* For the tutorials, you will get a [[ICP Unix Accounts for Students|personal account for the ICP machines]].
 
* For the tutorials, you will get a [[ICP Unix Accounts for Students|personal account for the ICP machines]].
* For the reports, we have a nice {{Download|latex-template.tex|latex-template.tex|txt}}.
+
* For the reports, we have a nice {{Download|latex-template.tex|LaTeX template|txt}}.
 +
<!--
 
* You can do the exercises in the CIP-Pool when it is not [[CIP Pool Occupancy|occupied by another course]]. The pool is accessible on all days, except weekends and late evenings.
 
* You can do the exercises in the CIP-Pool when it is not [[CIP Pool Occupancy|occupied by another course]]. The pool is accessible on all days, except weekends and late evenings.
* If you do the exercises on ICP machines, all required software and tools are available.
+
* If you do the exercises in the CIP-Pool, all required software and tools are available.
* If you want to do the exercises on your own computer, the following tools are required. All of these packages should be readily available from your OS distribution, if it is not Windows.
+
-->
** Python
 
** The following Python packages:
 
*** IPython
 
*** NumPy
 
*** SciPy
 
*** matplotlib
 
** A C compiler (e.g. GCC)
 
* We only have experience with Unix/Linux machines. Although most tools will probably also work on Windows, we cannot guarantee it, and we can also not help you to get it running there.
 
  
 
=== Hand-in-exercises ===
 
=== Hand-in-exercises ===
Line 140: Line 128:
 
* A written report (between 5 and 10 pages) has to be handed in for each worksheet. We recommend using LaTeX to prepare the report.
 
* A written report (between 5 and 10 pages) has to be handed in for each worksheet. We recommend using LaTeX to prepare the report.
 
* You have two weeks to prepare the report for each worksheet.
 
* You have two weeks to prepare the report for each worksheet.
* The report has to be sent to your tutor via email.
+
* The report has to be sent to your tutor via email ([[Samuel Tovey]] or [[Christoph Lohrmann]]).
* Participants need 50&thinsp;% of the points of the hands-in exercises on each worksheet to be admitted to the oral examination (see [[#Examination|Examination]] for details).
+
* Each task within the tutorial is assigned a given number of points. Each student should have 50 % of the points from each tutorial as a prerequisite for the oral examination.
  
 
=== What happens in a tutorial ===
 
=== What happens in a tutorial ===
  
 
* The tutorials take place every week.
 
* The tutorials take place every week.
* The new worksheet will be available for download on the days before the tutorial.
+
* You will receive the new worksheet on the days before the tutorial.
 
* In the first tutorial after you received a worksheet, the solutions of the previous worksheet will be presented (see below) and the new worksheet will be discussed.
 
* In the first tutorial after you received a worksheet, the solutions of the previous worksheet will be presented (see below) and the new worksheet will be discussed.
* In the second tutorial after you received the worksheet, there is time to work on the exercises and to ask questions.
+
* In the second tutorial after you received the worksheet, there is time to work on the exercises and to ask questions for the tutor.
 
* You will have to hand in the reports on Monday after the second tutorial.
 
* You will have to hand in the reports on Monday after the second tutorial.
 
* In the third tutorial after you received the worksheet, the solutions will be discussed:
 
* In the third tutorial after you received the worksheet, the solutions will be discussed:
Line 156: Line 144:
 
** At the end of the term, everybody should have presented at least once.
 
** At the end of the term, everybody should have presented at least once.
  
=== Documentation ===
+
== Getting ready for the exercises ==
  
 
==== Linux ====
 
==== Linux ====
Line 227: Line 215:
 
Depending on the programme you are enrolled in, Simulation Methods is part of different modules that award different numbers of credits after different kinds of exams. Please have a look at [[File:SimMethModuleOverview.pdf]], which also explains how you can take Advanced Simulation Methods.
 
Depending on the programme you are enrolled in, Simulation Methods is part of different modules that award different numbers of credits after different kinds of exams. Please have a look at [[File:SimMethModuleOverview.pdf]], which also explains how you can take Advanced Simulation Methods.
  
<!--
 
 
== C++ Course ==
 
== C++ Course ==
The Computer Science department is offering a week-long [https://campus.uni-stuttgart.de/cusonline/wbLv.wbShowLVDetail?pStpSpNr=208686 C++ course] at the end of this semester. We recommend all students that plan on participating the ''Advanced Simulation Methods'' lecture in winter semester 2020 to take this course. We also recommend it to all students that are considering doing a master's or bachelor's thesis at the ICP.
+
The Computer Science department is offering a week-long [https://campus.uni-stuttgart.de/cusonline/ee/ui/ca2/app/desktop/#/slc.tm.cp/student/courses/269105?$ctx=design=ca;lang=de C++ course] at the end of this semester. We recommend all students that plan on participating the ''Advanced Simulation Methods'' lecture in winter semester 2020 to take this course. We also recommend it to all students that are considering doing a master's or bachelor's thesis at the ICP.
 
Current bachelor students might be able to take this course as ''Schlüsselqualifikation'' &ndash; but please contact the organizing Professor beforehand to ensure that this is actually the case. Master students will be able to take this course as ''One Course (2 SWS) in an Application Field of Simulation Methods'' as part of the ''Fortgeschrittene Simulationsmethoden (Schwerpunkt)'' module, pending a change of the ''Modulhandbuch''. Note that even current bachelor students can already take the course in 2020 if they intend to enroll in the master programme (starting in fall 2021) and take Advanced Simulation Methods (in summer 2022). All students will need to present their ''"Schein"'' at the Advanced Simulation Methods exam in order to prove that they successfully participated in the C++ course and completed all required exercises.
 
Current bachelor students might be able to take this course as ''Schlüsselqualifikation'' &ndash; but please contact the organizing Professor beforehand to ensure that this is actually the case. Master students will be able to take this course as ''One Course (2 SWS) in an Application Field of Simulation Methods'' as part of the ''Fortgeschrittene Simulationsmethoden (Schwerpunkt)'' module, pending a change of the ''Modulhandbuch''. Note that even current bachelor students can already take the course in 2020 if they intend to enroll in the master programme (starting in fall 2021) and take Advanced Simulation Methods (in summer 2022). All students will need to present their ''"Schein"'' at the Advanced Simulation Methods exam in order to prove that they successfully participated in the C++ course and completed all required exercises.
-->
 

Latest revision as of 14:29, 4 November 2020

Overview

Type
Lecture (2 SWS) and Tutorials (2 SWS)
Lecturer
Prof. Dr. Christian Holm
Course language
English
Location and Time
Lecture: Thu, 14:00–15:30; online: via webex
Tutorials: TBA (Samuel Tovey); TBA (Christoph Lohrmann)
Prerequisites
We expect the participants to have basic knowledge in classical and statistical mechanics, thermodynamics, and partial differential equations, as well as knowledge of a programming language (Python and C).

The lecture is accompanied by hands-on tutorials which will take place via webex (details will follow). They consist of practical exercises at the computer such as small programming tasks, simulations, visualization and data analysis. The tutorials build upon each other, therefore continuous attendance is expected.

Course material

All course material (general info, lecture recordings, worksheets, ...) will be distributed via ILIAS (you join the ILIAS groups upon registration through C@MPUS)

Lecture

Scope

The first part of the course intends to give an overview about modern simulation methods used in physics today. The focus of the lecture will be to introduce different approaches to simulating a problem, hence we will not go too to deep into specific details but rather try to cover a broad range of methods. In more detail, the lecture will consist of:

Molecular Dynamics
The first problem that comes to mind when thinking about simulating physics is solving Newtons equations of motion for particles with given interactions. From that perspective, we first introduce the most common numerical integrators. This approach quickly leads us to Molecular Dynamics (MD) simulations. Many of the complex problems of practical importance require us to take a closer look at statistical properties, ensembles and the macroscopic observables.
The goal is to be able to set up and run real MD simulations for different ensembles and understand and interpret the output.
Error Analysis
Autocorrelation, Jackknifing, Bootstrapping
Monte Carlo Simulations
Since their invention, the importance of Monte Carlo (MC) sampling has grown constantly. Nowadays it is applied to a wide class of problems in modern computational physics. We want to present the general idea and theory behind MC simulations and show some more properties using simple toy models such as the Ising model.
Critical exponents in second order phase transitions
Finite-size scaling, universality concept, how to determine critical exponent with lattice spin models

Course Material

Date Subject Resources Remarks
1 2020-11-05 Organization, Introduction, MD Basics Slides
2 2020-11-12 Integrators Chaos, LJ-Potential, Units Lecture Notes
3 2020-11-19 Basics of Statistical Mechanics Lecture Notes


4 2020-11-26 PBC, cell-lists, simple MD Lecture Notes


5 2020-12-03 Observables, Brownian Motion, Diffusion Lecture Notes
6 2020-12-10 Diffusion, Green-Kubo, Langevin Dynamics Lecture Notes
7 2020-12-17 Thermostats part 1 Lecture Notes
8 2021-01-07 Error analysis Lecture Notes
9 2021-01-14 Thermostat part2 + Intro Monte Carlo Lecture Notes
10 2021-01-21 Monte-Carlo Method and critical phenomena Lecture Notes
11 2021-01-28 Critical Exponents Lecture Notes
12 2021-02-04 Finite Size Scaling Lecture Notes
13 2021-02-11 Reweighting Lecture Notes


Script

A preliminary version of the script can be downloaded here (929 kB).

If you find any kind of mistake / error / typo / bad formatting / etc. in the script, please send an email to Christoph Lohrmann or Samuel Tovey.

Recommended literature

We recommend that you search the university library for ebook versions of these books

Useful online resources

From Theory to Algorithms, Lecture Notes, (2002).

  • Reweighing: W. Janke, Histograms and all that, Computer Simulations of Surfaces and Interfaces, pp 137-157, Springer book
  • Monte Carlo Simulations: W. Janke, Monte Carlo, Monte Carlo Simulations of Spin Systems, Computational Physics pp 10-43


Tutorials

General Remarks

Hand-in-exercises

  • The worksheets are to be solved in groups of two or three people. We will not accept hand-in-exercises that only have a single name on it.
  • A written report (between 5 and 10 pages) has to be handed in for each worksheet. We recommend using LaTeX to prepare the report.
  • You have two weeks to prepare the report for each worksheet.
  • The report has to be sent to your tutor via email (Samuel Tovey or Christoph Lohrmann).
  • Each task within the tutorial is assigned a given number of points. Each student should have 50 % of the points from each tutorial as a prerequisite for the oral examination.

What happens in a tutorial

  • The tutorials take place every week.
  • You will receive the new worksheet on the days before the tutorial.
  • In the first tutorial after you received a worksheet, the solutions of the previous worksheet will be presented (see below) and the new worksheet will be discussed.
  • In the second tutorial after you received the worksheet, there is time to work on the exercises and to ask questions for the tutor.
  • You will have to hand in the reports on Monday after the second tutorial.
  • In the third tutorial after you received the worksheet, the solutions will be discussed:
    • The tutor will ask a team to present their solution.
    • The tutor will choose one of the members of the team to present each task.
    • This means that each team member should be able to present any task.
    • At the end of the term, everybody should have presented at least once.

Getting ready for the exercises

Linux

Python

  • Use the existing documentation of Python itself! To get help on the command print, use
 pydoc print
  • Or use the Web browser to read it. Start
 pydoc -p 4242
and visit the page http://localhost:4242

NumPy

  • first of all, try to use
 pydoc numpy

LaTeX

Running Python on your own computer

If you want to solve the problems on your own computer, you need to install Python along with a few extensions. This works differently depending on your operating system.

Debian und Ubuntu Linux

sudo apt-get update
sudo apt-get install python3 python3-numpy python3-scipy \
    python3-matplotlib ipython ipython-notebook gcc g++
mkdir -p ~/.config/matplotlib
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc

OpenSUSE Linux

sudo zypper install python python-numpy python-scipy \
    python-matplotlib IPython gcc python-Cython
mkdir -p ~/.config/matplotlib
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc

Mac OS X

First, install the C compiler:

xcode-select --install
xcodebuild -license accept

Now download and install MacPorts. Next, you can install the Python packages.

sudo port selfupdate
sudo port install python36 py36-numpy py36-scipy \
    py36-matplotlib py36-ipython py36-jupyter
sudo port select python python36
sudo port select ipython py36-ipython

Windows

For Windows, we recommend Anaconda Python, an all-in-one package that includes all required Python modules.

For the worksheets that use Cython, you will also need to install a compatible C compiler. If you chose Python 2.7, that is Visual Studio 2008 Express Edition plus, if you are running 64-bit Windows, the Windows SDK 2008 (in the installer, select "Installation Options", "Developer Tools", "Visual C++ Compilers", "Install the Visual C++ 9.0 Compilers). If you chose Python 3.5 or 3.6, you need Visual Studio 2015 Community Edition (in the installer, select "Custom" and on the next page, select "Common Tools for Visual C++ 2015" in the "Programming Languages" category and uncheck all the other components that we do not need).

Examination

Depending on the programme you are enrolled in, Simulation Methods is part of different modules that award different numbers of credits after different kinds of exams. Please have a look at File:SimMethModuleOverview.pdf, which also explains how you can take Advanced Simulation Methods.

C++ Course

The Computer Science department is offering a week-long C++ course at the end of this semester. We recommend all students that plan on participating the Advanced Simulation Methods lecture in winter semester 2020 to take this course. We also recommend it to all students that are considering doing a master's or bachelor's thesis at the ICP. Current bachelor students might be able to take this course as Schlüsselqualifikation – but please contact the organizing Professor beforehand to ensure that this is actually the case. Master students will be able to take this course as One Course (2 SWS) in an Application Field of Simulation Methods as part of the Fortgeschrittene Simulationsmethoden (Schwerpunkt) module, pending a change of the Modulhandbuch. Note that even current bachelor students can already take the course in 2020 if they intend to enroll in the master programme (starting in fall 2021) and take Advanced Simulation Methods (in summer 2022). All students will need to present their "Schein" at the Advanced Simulation Methods exam in order to prove that they successfully participated in the C++ course and completed all required exercises.