Skip to content

An extensive introduction to applied numerical computing: scientific programming, finite difference method, and finite element method

Notifications You must be signed in to change notification settings

BoullouzHamza/numerical-computing-intro

 
 

Repository files navigation

An easy (but not so short) introduction to applied numerical computing

This repository contains the materials used for the applied numerical computing series in TuxRiders. The materials are obtained from the following sources with very minor changes and adaptation:

  1. Lectures on scientific computing with Python by Robert Johansson
  2. Practical Numerical Methods with Python by Lorena A. Barba, Ian Hawke, and Bernard Knaepen
  3. An Easy Introduction to Finite Element Method and Variational Formulation by Mojtaba Barzegari

The mentioned repositores are embedded (and then partially modified) as git subtrees in this repository.

Table of Content

  1. Introduction to Jupyter notebooks

Scientific programming with Python

  1. Introduction to scientific computing with Python
  2. Introduction to Python programming
  3. Numpy - multidimensional data arrays
  4. SciPy - Library of scientific algorithms for Python
  5. matplotlib - 2D and 3D plotting in Python
  6. Sympy - Symbolic algebra in Python
  7. Tools for high-performance computing (HPC) applications
  8. Revision control software

Finite difference method for (partial) differential equations

  1. Initial-value problems: solving nonlinear ordinary differential equations
  2. General aspects of numerical solution of partial differential equations
  3. Riding the wave: convection problems
  4. Spreading out: diffusion problems
  5. Elliptic problems

Finite element method for (partial) differential equations

  1. Quick overview of the finite element method
  2. Function approximation by global functions
  3. Function approximation by finite elements
    FreeFEM code - function approximation
  4. Variational formulations with global basis functions
  5. Variational formulations with finite elements
    FreeFEM code - variational formulation and solution of Poisson equation
  6. Time-dependent variational forms
    FreeFEM code - time dependent diffusion equation with variable diffusion coefficient
  7. Variational forms for systems of partial differential equations
    FreeFEM code - Stokes equations for lid cavity problem
  8. Dealing with nonlinearity
    FreeFEM code - Picard method for nonlinear Poisson equation
    FreeFEM code - Picard-relaxation for nonlinear Poisson equation
    FreeFEM code - Newton method for nonlinear Poisson equation
  9. Iterative solvers and preconditioning
    FreeFEM code - high-performance solution of Poisson equation using PETSc

About

An extensive introduction to applied numerical computing: scientific programming, finite difference method, and finite element method

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 94.8%
  • Python 4.1%
  • HTML 0.8%
  • TeX 0.2%
  • Shell 0.1%
  • CSS 0.0%