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>):

  1. 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.
  2. report.qmd and the rendered report.html — start from report_template/report.qmd. Render it with W16_render_report.ipynb on Colab or with a local Quarto installation.
  3. figs/ — the figures used in the report, saved by project.ipynb.
  4. 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/*.npz or to Google Drive; the plotting cells read them.
  • %%fenicsx -np 2 for 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.

  1. Problem and QoI (1 slide)
  2. Weak form and the one analysis point that matters for your problem (1–2 slides)
  3. Verification: the MMS rate plot and the benchmark comparison (2 slides)
  4. Results (1–2 slides)
  5. 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:

  1. 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.
  2. The adjoint gradient agrees with a central finite difference (relative difference printed).
  3. 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.

6 Checklist before you submit