Examples from Fundamentals of Engineering Numerical Analysis, 2nd Edition, by Parviz Moin (ISBN: 9780521711234). Solutions from http://numerics.stanford.edu/ta/index.html, converted to Python. Source code solutions for examples 6.14 and 6.15 is available from https://web.stanford.edu/group/fpc/ta/ch6/. Requirements:
- Numpy - NumPy: array processing for numbers, strings, records, and objects.
- Scipy - SciPy: Scientific Library for Python
- Matplotlib - Python plotting package
Note: The original meshes for example 6.16 and 6.17 are unavailable, so approximations were generated based on the given domain geometries using the open source finite-element meshing software Gmsh. These geometries are contained in the files ch6ex16.geo and ch6ex17.geo, with the mesh nodes and elements stored in files ch6ex16_37.npz (37 elements), ch6ex16_491.npz (491 elements) and ch6ex17_1373 (1373 elements). These approximate the meshes used in the original example problems, and ch6ex16_37.pdf depicts the 37 element mesh as is done in figure 6.22 in the book. The solutions for these problems may be calculated using pure Python, but for meshes in excess of a few hundred nodes, this can be VERY SLOW. This is due to the Python "for" loop being interpreted rather than compiled. Therefore it is recommended to use the C implementations contained in funcs.c, or better yet use the OpenCL implementations in funcs.cl. The PyOpenCL package is required to use OpenCL, as well as an OpenCL compatible platform (i.e. CPU or GPU).