Course overview
- Study period
- Semester 1, 2025 (24/02/2025 - 21/06/2025)
- Study level
- Undergraduate
- Location
- St Lucia
- Attendance mode
- In Person
- Units
- 2
- Administrative campus
- St Lucia
- Coordinating unit
- Mathematics & Physics School
This course covers advanced numerical simulation techniques used in computational physics and their application to several physical problems. Topics covered include the solution of few-body classical dynamics, quantum mechanical eigenproblems, Monte Carlo techniques, the Metropolis algorithm, and classical models of magnetism. The course will cover some topics in advanced C++ programming, including floating point numbers, vectorisation, optimisation, parallelisation, and debugging techniques. The course requires the use of C++, and this will be introduced from scratch.
Computational techniques both broaden and deepen our understanding of physics by vastly increasing the range of mathematical calculations which can be performed.
This course will demonstrate how computational techniques through solutions of algebraic and differential equations can be used to uncover interesting physical phenomena. This course covers advanced numerical simulation techniques used in computational physics and their application to several physical problems. Topics covered include the solution of ODEs, eigenvalue problems, few and many-body quantum mechanical eigenproblems, Monte Carlo techniques, classical models of magnetism and more. The course will cover some topics in advanced C++ programming, including optimisation, parallelisation, and and modern software development practices. The course requires the use of C++, and this will be introduced from scratch.
The course will involve several major software projects; these will form the assessment of the course. In the projects, you will solve a high-level physics problem using advanced computational techniques.
In the School of Mathematics and Physics we are committed to creating an inclusive and empowering learning environment for all students. We value and respect the diverse range of experiences our students bring to their education, and we believe that this diversity is crucial for fostering a rich culture of knowledge sharing and meaningful exploration. We hold both students and staff accountable for actively contributing to the establishment of a respectful and supportive learning environment.
Bullying, harassment, and discrimination in any form are strictly against our principles and against UQ Policy, and will not be tolerated. We have developed a suite of resources to assist you in recognising, reporting, and addressing such behaviour. If you have any concerns about your experience in this course, we encourage you to tell a member of the course teaching team, or alternatively contact an SMP Classroom Inclusivity Champion (see Blackboard for contact details). Our Inclusivity Champions are here to listen, to understand your concerns, and to explore potential actions that can be taken to resolve them. Your well-being and a positive learning atmosphere are of utmost importance to us.
Course requirements
Assumed background
Some programming experience required - PHYS3071 or MATH3201 are recommended prerequisites. Our core 3rd year physics courses are prerequisites. Discuss with the course coordinator if you do not meet these.
Prerequisites
You'll need to complete the following courses before enrolling in this one:
(PHYS3020 or PHYS3920), PHYS3040 and (PHYS3051 or PHYS3951)
Recommended prerequisites
We recommend completing the following courses before enrolling in this one:
PHYS3071 or MATH3201
Incompatible
You can't enrol in this course if you've already completed the following:
PHYS7270 (co-taught, last offered 2022)
Restrictions
Restricted to BSc(Hons), BAdvSc(Hons), MQTech, GDSci and MSc Students. Permission of Head of School required.
Course staff
Course coordinator
Lecturer
Timetable
The timetable for this course is available on the UQ Public Timetable.
Additional timetable information
Each week consists of one lecture, and two two-hour practical/lab sessions.
A timetable of the lectures will be posted on blackboard.
Lectures and practicals will be conducted in-person on campus.
Important: If you are ill, then do not attend any classes in person. Alternative arrangements can be organised – consult Blackboard for details.
Aims and outcomes
Continuing the themes of PHYS3071/PHYS7073, the students in this course will develop skills in modeling physical processes and equations using solutions to differential and linear equations, stochastic methods and Monte Carlo simulations, and extracting useful information from the results.
Learning outcomes
After successfully completing this course you should be able to:
LO1.
Able to program effectively in C++, and use graphical tools such as GNUPLOT/matplotlib
LO2.
Understand the theory of solving equations of motion for physical systems such as orbital mechanics, waveguides, resonances and quantum systems.
LO3.
Able to formulate a problem in a suitable form for numerical solution, and the able to produce a computer program to obtain the solution and verify the correctness of the result.
LO4.
Apply knowledge of stochastic methods, random numbers, and Monte Carlo techniques to the solution of a wide variety of integral and differential equations
LO5.
Describe and analyse the results of a numerical calculations in the form of a scientific report.
Assessment
Assessment summary
Category | Assessment task | Weight | Due date |
---|---|---|---|
Computer Code, Paper/ Report/ Annotation, Project | ODEs | 10% |
12/03/2025 5:00 pm |
Computer Code, Paper/ Report/ Annotation, Project | Monte-Carlo, Ising model | 20% |
31/03/2025 5:00 pm |
Computer Code, Paper/ Report/ Annotation, Project | Atomic Wavefunction | 35% |
5/05/2025 5:00 pm |
Computer Code, Paper/ Report/ Annotation, Project | Many-body quantum | 35% |
30/05/2025 5:00 pm |
Assessment details
ODEs
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code, Paper/ Report/ Annotation, Project
- Weight
- 10%
- Due date
12/03/2025 5:00 pm
- Learning outcomes
- L01, L02, L03, L05
Task description
A basic revision assignment, on solving simple ODEs. Allows a steady introduction to C++ and the format of the reports, and allows feedback before the major projects.
Submission guidelines
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 7 days. Extensions are given in multiples of 24 hours.
See ADDITIONAL ASSESSMENT INFORMATION for extension/deferral information relating to this assessment item.
Feedback and partial solutions will be released within 7 days, so students have that before submitting next assignment, therefore an extension past this timeframe is not possible
Monte-Carlo, Ising model
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code, Paper/ Report/ Annotation, Project
- Weight
- 20%
- Due date
31/03/2025 5:00 pm
- Learning outcomes
- L01, L02, L03, L04, L05
Task description
Model phase transitions and the Ising model using Monte-Carlo techniques
Submission guidelines
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 14 days. Extensions are given in multiples of 24 hours.
See ADDITIONAL ASSESSMENT INFORMATION for extension/deferral information relating to this assessment item.
Feedback and partial solutions will be released within 14 days, so students have that before submitting next assignment, therefore an extension past this timeframe is not possible
Atomic Wavefunction
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code, Paper/ Report/ Annotation, Project
- Weight
- 35%
- Due date
5/05/2025 5:00 pm
- Learning outcomes
- L01, L02, L03, L05
Task description
Calculate wavefunctions and atomic properties for lithium atom using self-consistent Hartree-Fock method
Submission guidelines
Deferral or extension
You may be able to apply for an extension.
The maximum extension allowed is 14 days. Extensions are given in multiples of 24 hours.
See ADDITIONAL ASSESSMENT INFORMATION for extension/deferral information relating to this assessment item.
Many-body quantum
- Mode
- Product/ Artefact/ Multimedia, Written
- Category
- Computer Code, Paper/ Report/ Annotation, Project
- Weight
- 35%
- Due date
30/05/2025 5:00 pm
- Learning outcomes
- L01, L02, L03, L04, L05
Task description
Model the dynamics of Bose-Einstein condensates using Runge-Kutta methods, and explore properties of a quantum many-body system (the transverse-field Ising model) using exact diagonalisation as per assignment sheet
Submission guidelines
Deferral or extension
You may be able to apply for an extension.
See ADDITIONAL ASSESSMENT INFORMATION for extension/deferral information relating to this assessment item.
Course grading
Full criteria for each grade is available in the Assessment Procedure.
Grade | Cut off Percent | Description |
---|---|---|
1 (Low Fail) | 0 - |
Absence of evidence of achievement of course learning outcomes. Course grade description: incorrect code submitted, incomplete reports, lacks understanding of physics and programming skills. |
2 (Fail) | 20 - |
Minimal evidence of achievement of course learning outcomes. Course grade description: Incorrect code submitted and/or incomplete reports, shows minimal programming skills and understanding of the physics. |
3 (Marginal Fail) | 45 - |
Demonstrated evidence of developing achievement of course learning outcomes Course grade description: Incorrect code submitted and/or incomplete reports, shows some programming skills and understanding of the physics. |
4 (Pass) | 50 - |
Demonstrated evidence of functional achievement of course learning outcomes. Course grade description: Partially correctly functioning programs demonstrating some programming skills. Some structure to the code. Good reports, exhibiting some originality. Demonstrates base-level understanding of the physics and programming. |
5 (Credit) | 65 - |
Demonstrated evidence of proficient achievement of course learning outcomes. Course grade description: Mostly correctly functioning programs demonstrating good programming skills. Well-structured and readable code. Good reports, exhibiting originality and some insight. Demonstrates good understanding of the physics and programming. |
6 (Distinction) | 75 - |
Demonstrated evidence of advanced achievement of course learning outcomes. Course grade description: Correctly or nearly correctly functioning programs demonstrating good programming skills. Clear, well-structured and readable code. Very good reports, exhibiting originality and insight. Demonstrates thorough understanding of the physics and programming. |
7 (High Distinction) | 85 - |
Demonstrated evidence of exceptional achievement of course learning outcomes. Course grade description: Correctly functioning programs demonstrating very good programming skills. Clear, well-structured and readable code. Exceptional reports, exhibiting originality and a high level of insight.ᅠDemonstrates excellent understanding of the physics and programming. |
Additional course grading information
Course grading will be conducted by allocating marks for each of the assessment items. A final grade is calculated based on the overall percentage.
Supplementary assessment
Supplementary assessment is not available for this course.
Supplementary assessment is not available for this course due to the nature of the computer programming projects and no final exam for the course.
Additional assessment information
The assignments must be submitted electronically. On submission, you must include:
- All relevant source files (containing neat, well-structured code)
- Do not submit compiled executables
- A shell script (or makefile or similar) to compile the code; OR include the compile command in a text document
- (optional) A readme explaining which parts of the code are relevant to which parts of assignment (useful, e.g., if you have multiple source files)
- A pdf containing your written scientific report, with all required plots/data/explanations and answers to assignment questions
Your submitted program must be compilable and runnable by the examiner, and it should produce output consistent with the submission report.
The code should run "out of the box": we should not have to edit any part of the code for it to run.
Assignments are to be submitted electronically via blackboard (as a single zipped file), unless previously arranged with the lecturer.
There will be various assignments of increasing complexity and challenge. It will take several hours of work per week towards each assignment. Assignments will be most easily tackled if one has done the preceding worksheet(s) and assignments.
Programming Language: Assignments must be written in standard C++ such that it compiles in the GNU gcc compiler. NOTE: other languages cannot be used for the main parts of the assignment.
You may use any program you wish to produce any required plots/graphics; gnuplot is "officially supported" by the course, and is installed on the physics teaching servers, but using python/matplotlib for the figures is also fine.
Plagiarism: ᅠComparing/discussing course material and assessment is highly encouraged, and collaborationᅠwith others can be beneficial for understanding.ᅠ However, the direct (e.g. copy/paste) or indirect copying (e.g. memorising and rewriting) with or without variation ofᅠsentences, code, graphics, or similar,ᅠfrom any sourceᅠis plagiarism, and it will be reported.ᅠ It is also plagiarism if source and background material is not adequately referenced or used too much. Source and background material is defined as informationᅠthat is needed to complete the assessment but does not take the place of the synthesis and analysis of informationᅠthat addressesᅠthe assessment. All submitted items will be checked with an automated plagiarism detection tool that has access to previous submissions and an internet database, variations and re-arrangements of the same or similar code and sentences/paragraphs will be detected. If you are unsure if a particular sentence/graphicᅠis plagiarism you should be able to find similar examples on the internet or ask your tutor/lecturer prior to submission. Please note, information about the universities official policy on plagiarism is found in section 6.1 of this course profile.
Applications for Extensions to Assessment Due Dates
Extension requests are submitted online via my.UQ – applying for an extension. Extension requests received in any other way will not be approved. Additional details associated with extension requests, including acceptable and unacceptable reasons, may be found at my.UQ.
Please note:
- Requests for an extension to an assessment due date must be submitted through your my.UQ portal and you must provide documentation of your circumstances, as soon as it becomes evident that an extension is needed. Your application must be submitted on or before the assessment item's due date and time.
- Applications for extension can take time to be processed so you should continue to work on your assessment item while awaiting a decision. We recommend that you submit any completed work by the due date, and this will be marked if your application is not approved. Should your application be approved, then you will be able to resubmit by the agreed revised due date.
- If an extension is approved, you will be notified via your my.UQ portal and the new date and time for submission provided. It is important that you check the revised date as it may differ from the date that you requested.
- If the basis of the application is a medical condition, applications should be accompanied by a medical certificate dated prior to the assignment due date. If you are unable to provide documentation to support your application by the due date and time you must still submit your application on time and attach a written statement (Word document) outlining why you cannot provide the documentation. You must then upload the documentation to the portal within 24 hours.
- If an extension is being sought on the basis of exceptional circumstances, it must be accompanied by supporting documentation (eg. Statutory declaration).
- For extensions based on a SAP you may be granted a maximum of 7 days (if no earlier maximum date applies). See the Extension or Deferral availability section of each assessment for details. Your SAP is all that is required as documentation to support your application. However, additional extension requests for the assessment item will require the submission of additional supporting documentation e.g., a medical certificate. All extension requests must be received by the assessment due date and time.
- Students may be asked to submit evidence of work completed to date. Lack of adequate progress on your assessment item may result in an extension being denied.
- If you have been ill or unable to attend class for more than 14 days, you are advised to carefully consider whether you are capable of successfully completing your courses this semester. You might be eligible to withdraw without academic penalty - seek advice from the Faculty that administers your program.
- There are no provisions for exemption from an assessment item within UQ rules. If you are unable to submit an assessment piece then, under special circumstances, you may be granted an exemption, but may be required to submit alternative assessment to ensure all learning outcomes are met.
Learning resources
You'll need the following resources to successfully complete the course. We've indicated below if you need a personal copy of the reading materials or your own item.
Library resources
Find the required and recommended resources for this course on the UQ Library website.
Additional learning resources information
The C++ coding community is vast and there are many online forums and instructional sites where information can be found. Internet search tools such as google can be used to find examples of code solving a problem. It is very important that if you use these sources you are not plagiarising the examples. Section 5.4 and 6.1 have more information about plagiarism if you are unsure if the use of an example in particular is copying another's work.
Learning activities
The learning activities for this course are outlined below. Learn more about the learning outcomes that apply to this course.
Filter activity type by
Please select
Learning period | Activity type | Topic |
---|---|---|
Not scheduled |
Practical |
Computer lab classes The practicals, which comprise the majority of the contact hours for the course, are the place to learn coding techniques, C++ specifically. In the practicals, we will go over the new coding concepts, and students will have time to work on the worksheets, assignments, receive help and feedback from the lecturer/tutor. Learning outcomes: L01, L03, L04 |
Multiple weeks |
Problem-based learning |
Software projects The formal assessment for the course. Several large projects, that require high-level software solutions, and a written report. Learning outcomes: L01, L02, L03, L04, L05 |
Problem-based learning |
Worksheets Complete the provided exercises. While these are not directly assessed, they will cover key concepts, and will lead directly into the assignments, and are the main source for learning the background coding. Learning outcomes: L01, L03 |
|
Lecture |
Course lectures The course lectures will focus mainly on the required physics and numerical techniques required for the assignments. Learning outcomes: L02, L03, L04 |
Policies and procedures
University policies and procedures apply to all aspects of student life. As a UQ student, you must comply with University-wide and program-specific requirements, including the:
- Student Code of Conduct Policy
- Student Integrity and Misconduct Policy and Procedure
- Assessment Procedure
- Examinations Procedure
- Reasonable Adjustments - Students Policy and Procedure
Learn more about UQ policies on my.UQ and the Policy and Procedure Library.