Computational Physics: KD5081¶

Dr Lucy Whalley¶

Who am I?¶

  • Computational materials scientist:
    • solid-state physics
    • quantum chemistry

Who am I?¶

  • Research software engineer
    • high-performance computing (supercomputers!) to generate data
    • Python to analyse this data

  • Ex-teacher:
    • hopefully I won't have to put anyone on detention

What is computational physics?¶

  • In physics, different theories based on mathematical models provide very precise predictions on how systems behave. Unfortunately, it is often the case that solving the mathematical model is not feasible.
  • Computational physics is the study and implementation of numerical analysis to solve problems in physics for which a quantitative theory already exists.

Why computational physics?¶

  • Computing is now central to virtually all research and development in academia and industry
  • Computational physics encompasses areas including materials modelling, particle physics simulations, protein structure prediction and plasma modelling. In fact, it is possible to find a computational branch for every major field in physics.

Why computational skills?¶

  • The software development job market is growing fast: jobs are expected to increase by 21% by 2028
  • The focus of this course is to equip with you with the transferable skills needed for success in a range of computational disciplines , with examples tailored towards the physics domain.

This is the age of computing. I have mentioned the supercomputers I use. Also machine learning and data science is transforming large parts of society - we have afterall a society which seems to be largely built on algorithms now - for search engines, for Facebook, for Netflix. They guide who we meet and what we consume. Talk about quantum computing.

Why computational skills?¶

Course outline¶

Part one: Getting started¶

  • Python part one
  • Python part two
  • Data analysis and visualisation

Part two: Getting results¶

  • Modelling with ordinary differential equations
  • Modelling with partial differential equations

Part three: Getting it out there¶

  • Python scripts and the Unix terminal
  • Testing and documentation
  • Version control and Github
  • Open science and build-your-own website

Guest speakers¶

In the final section of the course you will also hear from three guest speakers who use some of the computational skills outlined in this course in their own work:

  • Anna Krystalli (Research Software Engineer, Sheffield University)
  • Adam Jackson (Computational scientist, Science and Technology Facilities Council)
  • Felix Rehren (Director of insurance mergers and acquisitions, Athora).

How does all this relate to the experimental component?¶

The first part of this course covers the basic skills needed for processing experimental data using Python. At the end of Getting started you will be able to read in experimental data from a plain text file, clean the data, apply basic statistical analysis and plot. We very much encourage you to apply the tools outlined in this course to your experimental analysis.

How is this component of the course assessed?¶

  • The module is split into two parts: experimental and computational
  • Each part is assessed seperately: 50% for experiment, 50% for computational
  • Both are coursework based. For the computational part:
    • Coursework will be released on Wednesday the 8th November
    • Coursework will be submitted on Thursday the 16th December
    • The coursework includes marks for code quality

Course resources¶

  • Course website - nu-cem.github.io/CompPhys - perhaps bookmark it.
  • Github to suggest improvements, report errors, share ideas...
  • Padlet to let me know what you think and share links - link here.

If everything is online, do i need to attend in person? ---> Yes! because a lot is hinging on the process of live coding: I code and talk you through the code, you follow along. Without this verbal explanation you are more likely to get lost. You will also have questions, and the lab hours are when you can get help from me and your peers.

💻 Laptop setup 💻¶

If you do not have a laptop with you then you can:

  • sit with someone who does (to help and to learn)
  • explore the Journal of Open Source Software: https://joss.theoj.org/
    • can you find a paper that interests you?
    • can you find the corresponding software on Github?
    • could explain what the software does to a non-expert?
In [ ]: