Free

Python for Engineering and manufacturing

Event Information

Share this event

Date and Time

Location

Location

Bank of Ireland

Start Lab

Eyre Square

Galway

Ireland

View Map

Event description

Description

Why Python?

The Benefits of General Purpose Programming Language

Some languages used in engineering are designed to focus on direct translation of mathematical models and ideas into code. For example “MATLAB”. On the surface, this is a good idea, but it immediately runs into problems. It leaves an engineer with a surface level understanding of the tool they're using and a poor ability to generalise possible solutions. For any larger programs or scripts, the resulting code can be even more difficult to debug and validate. The job of an engineer is not to be a computer programmer it is to design engineering systems and solve engineering problems. The constraints of a non-general language like “MATLAB” or “R” can hinder that. There are hidden trade off's with using a focused language. “Python” alleviates a lot of these issues. Python is also simpler to use than other general purpose languages like C++, while retaining all of the major benefits, such as a simple module system, structural data types, widely available manuals on different use cases and large libraries of existing code. These libraries cover areas like numerical methods, data analysis, machine learning and data visualisation.

The Benefits of Language Interoperability

Python excels at glueing other languages together, e.g. calling MATLAB functions from within Python. This flexibility allows Python to interface and work with already existing systems and languages to perform complex high level tasks. Allowing an engineer to get more done in less time. Its interoperability with different languages even includes existing code from “MATLAB”.

The benefits of Open Source Langauge

“Python” is an open source programming language, which means its free. The development of language is supported by companies like Dropbox and Google. Being an open source language means there is a large amount of existing libraries and tools that already work with “Python”. There is also no lock on what software you can use it with since there are no license fees to worry about.
Its open source nature means there is a vast amount of existing documentation that is free and openly available. It is currently the fastest growing language in terms of popularity on StackOverflow.

The Incredible Growth of Python
https://stackoverflow.blog/2017/09/06/incredible-growth-python/

Data Collection and Engineering

The processing and handling of large amounts of data are becoming more and more important in all engineering fields. Data from different sensors and from software packages like “ABAQUS” can quickly amount to massive processing issue. An additional benefit of using “Python” is its large popularity as a data processing and analytics language. Using already existing libraries, you can input data from a variety of different sources, preform important statistical tests, and easily develop computational models for modelling the behaviour of the system. There are libraries for Linear Algebra, Symbolic Mathematics and Machine Learning

Reusing Code and the Module System

An issue with languages like MATLAB is that all functions are declared in the global namespace, with names determined by filenames in the current path variable. However, this discourages code reusability by making the engineers do extra work keeping disparate program components separate. In other words, without a hierarchical structure to the program, it’s difficult to extract and reuse specific functionality. Second, engineers must either give their functions long names, essentially doing what a decent hierarchical system inherently does, or risk namespace conflicts which can be difficult to resolve and result in subtle errors. This structure from “MATLAB” can quickly becomes incredibly brittle and great deal of effort is wasted by an engineer chasing down subtle naming problems once a program reaches a certain size. With proper module system, like that found in “Python” code can be shared more easily, saving the time engineers have to rewrite certain code.

Available Libraries

One of the Major Benefits of “Python” is the massive amount of libraries available for example covering areas like numerical methods, data analysis, machine learning and plotting:

NumPy: http://www.numpy.org/
NumPy is the fundamental package for scientific computing with Python. It contains among other things:

  • a powerful N-dimensional array object
  • sophisticated (broadcasting) functions
  • tools for integrating C/C++ and Fortran code
  • useful linear algebra, Fourier transform, and random number capabilities

MatplotLib: https://matplotlib.org/
Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shell, the jupyter notebook, web application servers, and four graphical user interface toolkits.

SciKit Learn: http://scikit-learn.org/
Machine Learning in Python
Simple and efficient tools for data mining and data analysis

  • Accessible to everybody, and reusable in various contexts
  • Built on NumPy, SciPy, and matplotlib
  • Open source, commercially usable - BSD license


Pandas: http://pandas.pydata.org/
Data Analysis Library. Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

SymPy http://www.sympy.org/en/index.html
SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.

ThermoPy: https://pythonhosted.org/thermopy/
Thermopy is a Python package that contains some useful functions for Thermodynamics and Thermochemistry.

AeroPy: http://aeropy.readthedocs.io/en/latest/
AeroPy is an library for calculating aerodynamic properties. The main feature of this library is the Python interface with XFOIL. The main objective of this library is to be able to use XFOIL via Python iteratively in a total of 4 lines total (one line for most uses). Through this interface coupling with other softwares (Abaqus, Ansys, etc) is possible and iterative processes (optimization, design sensitivity) are possible. For a thorough explanation please check the documentation and the tutorials.

PySerial: https://pythonhosted.org/pyserial/
Tool for accessing and communicating with low-level connected devices and sensors

PyBrain: http://pybrain.org/
PyBrain is a modular Machine Learning Library for Python. Its goal is to offer flexible, easy-to-use yet still powerful algorithms for Machine Learning Tasks and a variety of predefined environments to test and compare your algorithms.

And Loads More

For Teaching

When teaching engineers how to analyse different system or even use programming in their analysis. There is an issue of context. Usually, the problem is taught separately. With “Python” and using tools like “Jupyter” you can create a vastly improved pedagogically experience where a student is guided through the different steps in computation and analysis. This piece by piece approach directly links the benefits of computational literacy and engineering understanding. This has been used successfully for example to teach CFD through “Python” by building a simple 2d solver

CFD Python
https://github.com/barbagroup/CFDPython

Digital Signal Processing
https://github.com/spatialaudio/digital-signal-processing-lecture

AeroDynamics
https://github.com/barbagroup/AeroPython

Collection of Jupyter Notebooks
https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks


Share with friends

Date and Time

Location

Bank of Ireland

Start Lab

Eyre Square

Galway

Ireland

View Map

Save This Event

Event Saved