|
Home > Courses > 4P10
|
PHYS 5P10
- Introduction to Scientific Computing
-
In Matlab/octave you may need to install into your own filespace packages that you want to use, if they are not provided by the system-wide installation. Here are a few useful commands:
pkg list
- list all available packages
pkg install -forge xyz
- install the current version of the package from the standard repository
pkg install xyz.1.2.3.tgz
- install a particular version of the package, pre-downloaded from
https://gnu-octave.github.io/packages/ . Sometimes, your octave installation may not be compatible with the latest version available; in this case, search and download the version that is compatible, by following the Version History link that shows all available versions and their compatibility.
pkg load xyz
-
once installed, a package needs to be loaded into your current workspace. This command needs to be issued every time, for packages installed in your own filespace. In contrast, the installation (see above) need to be done only once. It might be convenient to install packages from a full octave run, without performing these one-time steps in your jupyter notebooks.
These are previously made announcements:
-
Welcome to the home page of PHYS 5P10
. Watch this space for important announcements.
- This course can be taken as PHYS 5P10 or MATH 5P69, and by undergraduates as PHYS 4P10. The courses will be differentiated by level-appropriate expectations in the preparation of reports and projects.
- Be sure to review this statement on academic integrity
- To help you plan, the important dates of the current academic year are listed here.
- Lectures: Mo Th 12:00-13:30 in MC H300.
- All lectures will be conducted in the form of a lecture/tutorial, with each student performing the actions modeled by the instructor.
- Lectures will be posted in Lectures, both as .ipynb notebooks and as [non-interactive] .html files, if you do not have jupyter installed (it is installed on all computers in the Physics Department).
-
Although most of your homework will be submitted in the form of
jupyter notebook , high-quality output will require
some knowledge of LaTeX. Also, you are expected to prepare final project report using LaTeX. LaTeX is available on all computers in
Physics labs, and online at overleaf.com.
In preparation, students are encouraged to open overleaf accounts. Some useful resources for writing reports are here, and will be reviewed in class.
-
Please submit your homework via email to edward dot sternin at brocku dot ca.
Attach (do not include in the body of the message) *.m,*.c, Makefile *.ipynb etc.
files as necessary. Make sure the jupyter notebook or the comments in the code
contain your Brock computer ID/email as the identifier of the author. Do not use your student number
as an identifier, it is to be kept private.
- Late homework submissions are penalized by a sinking cap of 15%/day, so assignments that are 2 days late cannot get a grade higher than 70, etc.
- Monitor your grades through the Marks link on the left.
-
Those of you using a VirtualBox installation of Linux on your laptops note that you need to install Jupyter notebook as an add-on product. You may also want to install a few useful other things in one go:
sudo apt-get install jupyter-notebook jupyter-nbconvert build-essential gnuplot pip
-
Whether on your own VirtualBox, or on one of the Physics Department workstations that is missing a system-wide installation, the add-on of
gnuplot_kernel allowing you to run gnuplot from within a jupyter notebook directly, requires a python-based installation into your own personal space:
pip3 install gnuplot_kernel
What Brock calendar entry says (slightly revised for the current calendar):
-
Survey of computational methods and techniques commonly used in condensed matter physics research; graphing and visualization of data; elements of programming and programming style; use of subroutine libraries; common numerical tasks; symbolic computing systems. Case studies from various areas of computational physics. Discipline-specific scientific writing and preparation of documents and presentations.
What do I need to bring into the course?
- This course is a core course of the MSMP program, and is recommended to all Physics graduate students. Basic familiarity with Linux is assumed, and will be reviewed briefly.
Course Goals
- to develop a working knowledge of interactions with Linux OS
- to become proficient in experimental data graphing and numerical analysis
- to gain working knowledge of program development
- to become familiar with one or several interpreted programming environments, and to acquire basic scripting skills
- to become proficient in LaTeX and use it for scientific papers and presentations
Textbook
There is no formal textbook for the course. A number of online resources are available and can be used as reference material for the lectures. Some of these are:
This list will grow as the course progresses.
Component |
% of the final mark |
Notes |
Projects |
70% |
Six (or seven, time permitting) extended projects. Project submissions should be made in the form of a jupyter notebook file, via email to the instructor. |
Final presentation |
30% |
One of the projects (selected at random) submitted in the form of a scientific journal submission,
using Phys. Rev. or Can. J. Phys. format, and presented in-class as a research seminar. |
This is an approximate outline. Topics not on this list may get covered as time permits.
- A common toolbox
- interacting with the OS; CLI vs GUI
- Linux as a collection of small tools + pipes between them
- the basics of programming: shell, C, scripting languages
- code development: edit, compile, run, make and Makefile structure, elementary debugging, linking to program libraries
- visualization with gnuplot and other graphing tools
- Numerical methods
- Numerical differentiation: finite differences, interpolation, root finding
- Numerical integration: special functions and quadrature
- Solution of Ordinary Differential Equations: Euler-Cromer, Runge-Kutta
- Linear algebra: methods of solving systems of equations and eigenvalue problems
- Stochastic Methods:Random number generators, importance sampling, Molecular dynamics, Monte-Carlo techniques
- Case Studies/Projects
- Least-squares problem: experimental noisy data, noise distribution and filtering, importance of baseline, assumption of Gaussian noise, chi-squared; classification of LS problems, regularization and selection of lambda. Test case: a spectrum of exponential relaxation rates
- Molecular modeling: protein database data, force fields, GROMACS simulation package. Test case: a lipid bilayer with cholesterol guests (T.Harroun)
- Models of solids: Ising model, magnetic moment, temperature, heat capacity, Metropolis' algorithm. Test case: magnetic transitions in an Ising lattice
- Image Analysis: filtering to remove noise, segmentation to isolate regions and objects of interest, regional and spectral analysis to extract statistical data. Test case: spatial frequency distribution of a line image
|
|