Skip to main content

Unit information: Principles of Numerical Analysis and Research Software Development for Composite Materials in 2019/20

Please note: Due to alternative arrangements for teaching and assessment in place from 18 March 2020 to mitigate against the restrictions in place due to COVID-19, information shown for 2019/20 may not always be accurate.

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Principles of Numerical Analysis and Research Software Development for Composite Materials
Unit code AENGM0046
Credit points 10
Level of study M/7
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. O'Donnell
Open unit status Not open

Prior knowledge of linear algebra and partial differential equations.



School/department Department of Aerospace Engineering
Faculty Faculty of Engineering


The unit will introduce students to programming concepts and how best to apply them to the successful analysis of composites with a research focus. It assumes no prior experience of computer programming as this unit is aimed at students from a variety of backgrounds undertaking the Advanced Composites PhD or MSc. Programming skills will be developed through completing various exercises covering commonly encountered numerical analysis techniques. The project culminates with the application of several analysis techniques to understand the behaviour of composite structures. Here, they are required to report on the advantages/limitations of these approaches. Throughout the course the students will be exposed to “best practice” regarding software development and the use of high-performance computing and research data storage. Validation and critical evaluation of their own code, and evaluation of their peer’s coding, is built into the assessment format to highlight its importance.

The unit will comprise of self-paced learning working through a series of examples provided from CENG25200. These will be supported by seminar type sessions where key aspects of the numerical techniques can be discussed. Students will be directed towards online tutorials and documentation in order to support the development of self-study skills. As part of their preparations for conducting research the students will attend seminar sessions covering version control, the use of HPC facilities, and managing their data storage.

Upon completion the unit aims for students to have:

1) A comprehension of the fundamentals of programming demonstrated through their ability to work collaboratively as part of a small group, self-organise and review code contributions for both technical and experimental correctness. This will be achieved through understanding of and implementation of several coding task covering the following:

  • Familiarity with coding syntax.
  • Knowledge of data types/structures.
  • Application of programming fundamentals, loops, functions, conditional statements.
  • Controlling data input and output.
  • Program structure - modularisation.
  • Validation of code, e.g. unit testing and experimental correctness.
  • Utilisation of version control and collaborative project management.
  • Data storage and use of the research data storage facility.
  • Use of high-performance computing facilities and its implications on code structure, e.g. parallel programming.

2) The ability to analyse a composite structure using several different numerical techniques. Students will analyse the structure and compare the results obtained critically. This will allow the students to highlight the limitations/advantages of each approach. In doing so students will need to appraise the underlying mathematics. They will gain knowledge of how to present critical analysis in a collaborative manner. To aid in completing these broader goals the students will consider the following topics:

  • Computational Linear Algebra.
  • Root finding.
  • Numerical Quadrature.
  • Least Squares.
  • Finite Differences.
  • Finite Elements.
  • Initial Value Problems.
  • Differential Quadrature Method.
  • Principles of Optimisation.
  • LaTeX and Overleaf
  • Presenting data – figures/formatting.
  • Comparison of analysis techniques – balancing competing requirements

Intended learning outcomes

Upon successful completion of this unit students will have

  1. Practical understanding of coding fundamentals.
  2. Experience of implementation of coding for research and collaborative development.
  3. Practical experience of utilising numerical methods to analyse composites and their limitations.
  4. The ability to synthesise numerical analysis results and demonstrate technical report writing ability.

Teaching details

This unit will comprise of 8-10 seminar hours and 4-6 hours lectures.

Assessment Details

Summative assessment is comprised of two coursework submissions:

  1. Part 1 (ILO 1 & 2) – 30% 3-page individual report with code submission and validation. This submission will require the students to produce a basic composite analysis tool, the report will require them to utilise version control together with in-code commenting to keep track of changes. They will be required to submit their code to the queueing system and execute their analysis successfully by using UoB’s HPC (Bluecrystal) and upon completion of the job download their results from the HPC facility and upload their finalised analysis to the research data store.
  1. Part 2 (ILO 2, 3 & 4) – 70% 6-page joint report with code/model submission.
    This report will require the students to contrast several methods of analysis for composite structures in order to compare the limitations of each analysis type. Students will work in groups to develop their code but each member of the group will be required to comment/edit/contribute on all parts of the code’s development. The report will be completed collaboratively using Overleaf.

Reading and References

  • Course material from CENG25200
  • Documentation from Advanced Computing Research Centre
  • Online documentation e.g. Mathworks, Python Software Foundation, Overleaf.
  • Hahn, B. (2016) Essential Matlab for Engineers and Scientists Academic Press
  • Attaway S. (2017) MATLAB: A Practical Introduction, Butterworth-Heinemann 9780128045251