Undergraduate
Machine Design
A compression-spring project, then an infinite-life fatigue condition added to it: a change in a mechanics formula visibly changes the feasible set. Students submit code and a report defending their assumptions.
Education
A graduate course whose spine is error control, an open textbook written as it is taught, twelve executable notebooks, research software with users, and undergraduate research that has reached conference presentations and a first-authored manuscript.
Theory and software are often taught as two separate activities: learn the mechanics, then learn to drive the code. The harder part lies between them: deciding whether the model is appropriate, whether the computation resolves it, and whether the resulting answer can support an engineering decision.
When can a computed answer be acted on? A graduate finite element course built around a priori and a posteriori error, adaptivity and verification is not a course about software. It is a course about knowing what an answer is worth.
Four questions a student should be able to answer about a finished problem: what does this model assume, what did the software actually compute, how was the result checked, and why is the resulting design defensible. The same questions recur in the group’s work on reliable scientific AI, where approximation and error matter because decisions are made from the result.
Undergraduate
A compression-spring project, then an infinite-life fatigue condition added to it: a change in a mechanics formula visibly changes the feasible set. Students submit code and a report defending their assumptions.
Undergraduate and graduate
Distributed tractions against resultant point forces on a heterogeneous plate, with convergence in strain energy required. The task is judging a model, not operating a solver.
Graduate
Students move from a strong-form boundary-value problem to its variational form, identify the trial and test spaces and the essential and natural boundary conditions, then connect each mathematical object to what the finite element code actually represents.
Assessment asks students to diagnose an incorrect boundary condition, an inconsistent unit or an unconverged mesh, not only to produce a plausible plot.
Undergraduate → REU → master's
First author of the group's 2026 manuscript on magnetic soft material design, presented at a national conference.
Undergraduate researcher
Implemented four descriptions of interface fracture, calibrated one against a configuration with a known answer, and worked out what each of them costs and can represent.
Master's
Building the cohesive-contact model behind the group's failure and fatigue work, connecting particle–matrix separation to the response of magnetic soft composites.
Master's
Is building the route from optimized design to printed specimen, where a design acquires tolerances.
Outside the university, a Google Summer of Code project set with Patrick Diehl took a student through building a parallel nonlocal solver; the load-balancing algorithm it produced was published. The progression is the same each time: computational skills, a bounded question, verification, presentation, authorship.
The textbook is written in public as the course runs. New chapters appear as they are developed, so the material records not only the finished course but its construction. That follows the same principle that runs through the group’s computational work: make what is known, what has been checked, and what remains unresolved visible alongside the result.
The materials below are meant to be used, modified and tested by others, not simply posted as course artifacts.
Open textbook, in progress
Written in the open alongside the graduate course. Current chapters develop the mathematical foundations, variational formulations and model problems, with later modules extending toward error estimation, adaptivity, mixed methods and PDE-constrained optimization.
Executable tutorial notebooks
Meshing with Gmsh and pygmsh; Poisson problems; Newton and Picard iterations written out before the library solver is introduced; linear elasticity and stress concentration in 2D and 3D; hyperelasticity; magnetoelasticity; and phase-field fracture. FEniCSx is used throughout, with legacy FEniCS implementations retained for comparison.
Research software
Granular media in which particles deform, break and rearrange. Published with its documentation and test cases, which is what makes a result reproducible rather than merely readable.
Research software
The asynchronous many-task solver library that grew from Google Summer of Code work on scalable nonlocal mechanics. The repository is preserved as an archived research-software record.
These materials are public, and each item lists its licence. Check the linked repository before adapting or redistributing: the reuse conditions differ by project.
Graduate finite elements, taught alongside an open textbook and code repository developed in public as the course runs.
Undergraduate machine design as a constrained decision: design variables, feasible sets, and mechanics-based verification.
Formulation, linear stress and thermal analysis, and software labs where the question is whether to believe the model.
Undergraduate solid mechanics, with the emphasis on setting a problem up correctly before solving it.
Two undergraduate modules coordinated and taught at the University of Portsmouth.
Two undergraduate numerical-methods courses taught at UT Austin in Fall 2021.
Teaching material is worth more when someone else picks it up, and the group would rather hear from people than count downloads. A few of the conversations we are actively interested in:
None of this needs a formal arrangement to begin. An email describing what you are trying to do is enough.