AI-based Materials and Process Simulation I — Final Project
Week 16 · final report, code and presentation · 35 % of the course grade (the proposal was the other 5 %)
1 What you hand in, and when
There is no final exam in Course I and no progress presentation. The term project (40 % of the grade) consists of
| Part | Weight | Due |
|---|---|---|
Proposal (W08_project_proposal.ipynb) |
5 % | before Week 9 — done |
| Final report and code | 25 % | one week after the Week 16 session (you can use the feedback from your talk) |
| Final presentation (including live questions on your code) | 10 % | in the Week 16 session; slides uploaded before the session |
The Week 16 session starts with the 10-minute quiz on the Week 15 lecture; the presentations follow.
Submit (one folder or zip, named AMPS1_project_<student-ID>):
project.ipynb— the Colab notebook that produces every number and figure in the report. It must run end to end after Runtime → Restart session and run all, with%%fenicsx -np 2.report.qmdand the renderedreport.html— start fromreport_template/report.qmd. Render it withW16_render_report.ipynbon Colab or with a local Quarto installation.figs/— the figures used in the report, saved byproject.ipynb.- The presentation slides (PDF or HTML).
2 The report
At most 10 pages in print (about 4 000 words plus figures), in English. Equations, tables and figures instead of prose wherever possible. The template contains every required section; keep the headings.
| Section | What must be in it |
|---|---|
| 1 Problem | Physical setting, governing equations, boundary and initial conditions, parameters with units, dimensionless numbers, the quantity of interest (QoI). Why it matters for your research. |
| 2 Weak form | Spaces, essential vs natural conditions, the residual F(u;v), the Jacobian (derived, or ufl.derivative plus a check). Discretisation: elements, stabilisation, time stepping. |
| 3 Analysis | Which theorem gives existence/uniqueness/stability of the (linearised) problem — Lax–Milgram, inf-sup (Brezzi), monotonicity, a CFL or Péclet argument — and where it can fail for your parameters. |
| 4 Implementation | Structure of the code (one short table: function → purpose), solver choices (Newton/SNES options, linear solver, preconditioner) and why these. |
| 5 Verification | (a) MMS: the manufactured solution, the predicted rates, a convergence table/plot with observed rates on at least 4 meshes. (b) A benchmark, an analytical limit, or a conservation check, with a citation, and the deviation in %. (c) -np 1 vs -np 2 give the same QoI. |
| 6 Results | The QoI and a parameter study (e.g. in Re, Pe, a material parameter); mesh (and time-step) independence of the reported values. |
| 7 LLM workflow | What was generated by an LLM, which errors you found, how you found each one (which test failed), and how each component was verified. At least three concrete cases. |
| 8 Limitations | What your model and numerics cannot do; what you would do next. |
| References, AI-usage log | Cited sources (papers, textbooks, benchmark data). The AI-usage log table of the course, completed. |
Numbers. Every number in the report must come from a cell of project.ipynb that you ran. Put a short tag after each table or figure caption naming the cell (e.g. “project.ipynb §5.2”). Do not round away disagreements: if the observed rate is 1.6 where you predicted 2, say so and explain.
3 The code
- One notebook, ordered like the report (§2 forms → §5 verification → §6 results). Long runs save their results to
/tmp/fnx/*.npzor to Google Drive; the plotting cells read them. %%fenicsx -np 2for every simulation; ordinary cells only NumPy and matplotlib (as in the weekly notebooks).- Print the converged reason (KSP/SNES) of every solve that a reported number depends on.
- Total run time on Colab: at most 30 minutes. If the full study takes longer, run the expensive part once, save the results, and add a cell with a reduced version (coarser mesh) that reproduces the trend.
- Code you did not write (LLM, demos, tutorials) is allowed — and must be listed in the AI-usage log and the code-provenance note.
4 The presentation
12 minutes per student: 8 minutes talk + 4 minutes questions. Strict timing.
- Problem and QoI (1 slide)
- Weak form and the one analysis point that matters for your problem (1–2 slides)
- Verification: the MMS rate plot and the benchmark comparison (2 slides)
- Results (1–2 slides)
- One LLM error you found, and how (1 slide)
Live questions on your code. Have project.ipynb open. You will be asked to show where something happens in the code (e.g. where a boundary condition enters, which line sets the Jacobian, what a solver option does) and to predict what a small change would do. Being unable to explain your own submitted code counts as not having done that part (syllabus, Academic Integrity).
5 Optional extension: a gradient-based inverse problem (bonus)
Projects with a model parameter (topics A–E of projects/index.html, or your own topic) may add an inverse problem: estimate the parameter m from (synthetic) data by minimising J(m)=\tfrac12\int(u(m)-u_d)^2\,dx with a gradient computed by the adjoint method. Either with dolfinx-adjoint (installation cell in W16_render_report.ipynb, tested with DOLFINx 0.11 on Colab), or by deriving and solving the adjoint equation yourself.
Required for the bonus — all three:
- Taylor test: |J(m+\epsilon\,\delta m)-J(m)-\epsilon\,dJ\cdot\delta m|=O(\epsilon^2), with the observed rate printed for at least 4 values of \epsilon.
- The adjoint gradient agrees with a central finite difference (relative difference printed).
- Recovery: data generated with a known m_\text{true} (optionally with noise); the optimiser recovers m_\text{true} (or explains the bias caused by the noise).
Put it in an extra report section “9 Inverse problem” (it does not count towards the 10 pages). Worth up to +2 points on the course grade; it never lowers your score, and it cannot compensate a missing verification section. For topic F the inverse problem is the project itself; its bonus is the design-optimisation stretch goal (F page, stretch goal 2), under the same three checks.