Spencer Smith

Associate Professor
B. Eng. C. S., M. Eng., Ph. D., P. Eng.

Department of Computing and Software, Faculty of Engineering
McMaster University
1280 Main Street West
Hamilton, Ontario L8S 4K1, Canada
Tel.: +1-905-525-9140 ext. 27929
Room: ITB/167
E-mail: smiths@mcmaster.ca 



Doctorate in Engineering (2001) Civil Engineering Department, McMaster University, Thesis: Simulating the cast film process using an updated Lagrangian finite element algorithm

Masters of Engineering (1997) Civil Engineering Department, McMaster University, Thesis: Nonisothermal film casting of a viscous fluid

Bachelors of Engineering and Computer Systems (1995) Civil Engineering Department, McMaster University


Research Interests

Engineers and scientists rely heavily on the use of scientific computation to aid in their design decisions. The decisions that are made have far reaching consequences in terms of financial resources, environmental impacts and possibly the health and welfare of the community. Given the importance of the decisions, it is necessary that the computational tools used by engineers perform efficiently and reliably. Some ideas for reaching these goals are as follows:

1) Application of Software Engineering Principles, Methods, Techniques and Tools to Improve the Sustainability of Research Software

- Documentation for research software, including requirements documentation and Module Interface Specification (MIS)

- Understanding the state of the practice for developing research software in different domains

- Generating research software artifacts (code, documentation, test cases, etc) from captured mathematical, physical and computing knowledge

- Assurance cases to build confidence in research software

- Use of the principles of information hiding and encapsulation in numerical software

- An open framework for finite element code

2) Improvement in the Application of Numerical Algorithms to Practical Engineering Problems

- Computational medicine, medical imaging

- Implementation of the finite element method using different descriptions of motion

- Investigation of computational problems in polymer processing and metal forming


Past and Current Teaching Responsibilities

Software Engineering 2AA4: Software Design I - Introduction to Software Development (GitLab Repo for 2me3-2aa4)

Computer Science 2ME3: Introduction to Software Development (GitLab Repo for 2me3-2aa4)

Software Engineering 3XA3, Software Engineering Practice and Experience: Software Project Management

Engineering 1D04, Introduction to Engineering Computation

Software Engineering 4G06, Software Design IV - Capstone Design Project

Software Engineering 3X03, Scientific Computation and Continuous Optimization

Software Engineering 3I03, Communication Skills

Software Engineering 2AA4, Software Design I - Software Component Design

Computer Science 4ZP6, Capstone Project

Computing and Software 741, Development of Scientific Computing Software (GitLab Repo)


Selected Publications

Click on the title of a paper to view the paper or its abstract.

W. Spencer Smith, Peter Michalski, Jacques Carette and Zahra Keshavarz-Motamed. (2023) State of the Practice for Lattice Boltzmann Method Software. 2023 Archives of Computational Methods in Engineering pp 1 - 38

W. Spencer Smith, Mojdeh Sayari Nejad and Alan Wassyng. (2019) Building Confidence in Scientific Computing Software Via Assurance Casees. 2019 arXiv e-print

W. Spencer Smith, Malavika Srinivasan and Sumanth Shankar. (2019) Debunking the Myth that Upfront Requirements are Infeasible for Scientific Computing Software. 2019 International Workshop on Software Engineering for Science (held in conjunction with ICSE'19)

W. Spencer Smith, Malavika Srinivasan and Sumanth Shankar. (2019) No Need for Excuses: Applying Software Engineering Principles to Facilitate Scientific Software Documentation. SIAM-CSE 2019 Conference on Computational Science and Engineering, Minisymposterium: Software Productivity and Sustainability for CSE and Data Science

W. Spencer Smith, Zheng Zeng and Jacques Carette. (2018) Seismology Software: State of the Practice. Journal of Seismology

W. Spencer Smith and Samantha Chan. (2017) Collaborative and Competitive Video Games for Teaching Computing in Higher Education. Journal of Science Education and Technology

W. Spencer Smith, Adam Lazzarato and Jacques Carette. (2016) State of the practice for mesh generation and mesh processing software. Advances in Engineering Software, Vol 100, Pages 53-71

W. Spencer Smith and Nirmitha Koothoor. (2016) A Document Driven Method for Certifying Scientific Computing Software Used in Nuclear Safety Analysis. Nuclear Engineering and Technology, Vol 48, Issue 2, Pages 404-418

ElSheikh, Ahmed, Samir E. Chidiac and W. Spencer Smith. (2008) A posteriori error estimation based on numberial realization of the variational multiscale method. Computer Methods in Applied Mechanics and Engineering, 197:3637-3656

Jacques Carette, Spencer Smith, John McCutchan, Christopher Anand and Alexandre Korobkine (2007) Model manipulation as part of a better development process for scientific computing code, Technical Report 48, Software Quality Research Laboratory, McMaster University.

W. Spencer Smith, Lei Lai and Ridha Khedri. (2007) Requirements analysis for engineering computation: A systematic approach for improving software reliability Reliable Computing, Special Issue on Reliable Engineering Computation, 13:83-107.

W. Spencer Smith (2006) Systematic development of requirements documentation for general purpose scientific computing software, Proceedings of the 14th IEEE International Requirements Engineering Conference, RE 2006, pages 209-218, Minneapolis/St. Paul, Minnesota.

Smith, W. Spencer and Chien-Hsien Chen. (2004) Commonality analysis for mesh generating systems. Technical Report CAS-04-10-SS, Computing and Software Department, McMaster University.

ElSheikh, Ahmed, W. Spencer Smith, and Samir E. Chidiac. (2004) Semi-formal design of reliable mesh generation systems. Advances in Engineering Software, 12: 827-841

W. Spencer Smith and Chien-Hsien Chen. Commonality and requirements analysis for mesh generating software. In Proceedings of the Sixteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2004), pages 384-387, Banff, Alberta, Canada, June 2004. Knowledge Systems Institute Graduate School, KSI, Skokie, IL, 60076, USA.

Dieter F. E. Stolle and W. Spencer Smith. (2004) Average strain strategy for finite elements. Finite Elements in Analysis and Design, 40(13-14):2011-2024.

Smith, W. Spencer, and Dieter F. E. Stolle. (2003) Numerical Simulation of Film Casting Using an Updated Lagrangian Finite Element Algorithm, Polymer Engineering and Science, May 2003, Vol. 43, No. 5, pp. 1105-1122.

Smith, W. Spencer, and Dieter F. E. Stolle. (2002) A comparison of updated Lagrangian and Eulerian finite element algorithms for simulating film casting, Finite Elements in Analysis and Design, March 2002, Vol. 38, No. 5, pp. 401-415.

Smith, W. Spencer, and Dieter F. E. Stolle. (2000) Draw resonance in film casting as a response problem using a material description of motion, Journal of Plastic Film & Sheeting, January 2000, Vol. 16, pp. 1-13.

Smith, W. Spencer, and Dieter F. E. Stolle. (2000) Nonisothermal two-dimensional film casting of a viscous polymer, Polymer Engineering and Science, August 2000, Vol. 40, No. 8, pp. 1870-1877.

Smith, W. Spencer, Fred L. Hall and Frank O. Montgomery. (1996) Comparing the speed-flow relationship for motorways with new data from the M6, Transportation Research A, Vol. 30, No. 2, pp. 89-101.


Selected Software Projects

Drasil framework for Literate Scientific Software

Mesh Generation Toolbox MGT and Documentation by Wen Yu


Research Groups and Professional Organizations

Professional Engineers Ontario (PEO)

Software Quality Research Group (SQRL)

Algorithms Research Group (ARG)


Conferences Organized

Software Engineering Course Projects (SWECP) with Scott Tilley, Kenny Wong and Shihong Huang, 2005 - 2007

Canadian Software Requirements Symposium '03 with Dr. Ridha Khedri, Monday, May 26, 2003


Current Graduate Students

Daniel Szymczak (Ph.D. Candidate) (with Jacques Carette)

Oluwaseun (Olu) Owojaiye (Ph.D. Candidate) (with Jacques Carette)

Brooks MacLachlan (M. A. Sc. Candidate) (with Jacques Carette)

Ao Dong (M. Eng. Candidate) (with Jacques Carette)

Peter Michalski (M. Eng. Candidate) (with Jacques Carette)


Past Graduate Students

Grace CHEN (M. Sc.) "A Software Engineering Approach to Developing Mesh Generators"

Huanchun GAO (M. A. Sc.) "A Framework for a Virtual Material Testing Laboratory"

Lei LAI (M. A. Sc.) (with Ridha Khedri) "Requirements Documentation for Engineering Mechanics Software: Guidelines, Template and a Case Study"

Fang CAO (M. A. Sc.) "A Program Family Approach to Developing Mesh Generators"

Ahmed EL-SHEIKH (Ph. D.) "Multiscale A Posteriori Error Estimation and Mesh Adaptivity for Reliable Finite Element Analysis" (Civil Engineering (co-supervised))

Wen YU (M. Sc.) "A Document Driven Methodology for Improving the Quality of a Parallel Mesh Generation Toolbox"

John MCCUTCHAN (M. Sc.) "A Generative Approach to a Virtual Material Testing Laboratory"

Jin TANG (M. A. Sc.) "Developing Scientific Computing Software: Current Processes and Future Directions"

Wen YU (Ph. D.) "Validation of Program Families of Finite Element Solvers"

Alicja HANEBACH (M. Eng.) (with Dieter Stolle) "Pavement Crack Behaviour Using the Boundary Element Method"

Mustafa EL-SHEIKH (M. A. Sc.) (with Jacques Carette) "A Generative Approach to Meshing Geometry"

Gonzalo SANCHEZ (M. Eng.) "Virtual Material Testing Laboratory"

Hesham EL-SEWIFY (M. Eng.) (with Christopher Anand) "Multi-Particle Collision Dynamics"

Jessica PAVLIN (M. Sc.) (with Christopher Anand) "Symbolic Generation of Parallel Solvers for Unconstrained Optimization"

Nirmitha KOOTHOOR (M. A. Sc.) "Software Certification for Nuclear Safety Analysis Software"

Vasudha KAPIL (M. Eng.) (with Jacques Carette) "Assessment of Quality of Software Tools for Medical Imaging and Spatial Analysis"

Yue SUN (M. Eng.) (with Jacques Carette) "Assessment of Quality of Software Tools for Psychometrics and Oceanography"

Zheng ZENG (M. Eng.) (with Jacques Carette) "Assessment of Quality of Software Tools for Seismology and Radio Astronomy"

Adam LAZZARATO (M. Eng.) (with Jacques Carette) "Assessment of Quality of Software Tools for Remote Sensing and Mesh Generation"

Samantha CHAN (M. A. Sc.) (with Christopher Anand) "The Educational Effectiveness of a Cooperative and Competitive Video Game for Teaching Introductory Programming"

Thulasi Jegatheesan (M. Sc.) (with Ned Nedialkov) "Case Studies in Document Driven Design of Scientific Computing Software"

Mojdeh Sayarinejad (M. Sc.) "A Case Study in Assurance Case Development for Scientific Software"

Malavika Srinivasan (M. A. Sc.) (with Sumanth Shankar)

Devi Prasad Reddy (M. Eng.) (with Jacques Carette)

Yuzhi Zhao (M. Eng.) (with Jacques Carette)



Schedule showing busy/free time

Spencer Smith, revised June 3, 2020