Code Monkey home page Code Monkey logo

finite-element-intro's Introduction

An Easy Introduction to Finite Element Method and Variational Formulation

This repository contains the content and codes of the great open-source ebook "Introduction to Numerical Methods for Variational Problems", written by H.P. Langtangen and K.A. Mardal (appropriate permissions already granted). The original description and repository can be found here and here. This is, by far, the best book I've seen for learning the concepts of finite element formulation, suitable for students/researchers without a strong background in mathematics and numerical methods. Unfortunately, the ebook is not fully finished as the main author passed away (you don't notice this when you read the book, but a closer look reveals unfinished communications of authors on the topics).

As the book is open-source, I converted it to a set of easy-to-follow Jupyter notebooks. I did this using the tool Prof. Langtangen had developed for scientific writing: doconce (document once, include anywhere). Additionally, all the codes, including the accompanying codes for exercises, are ported to Python 3.

The text you find here is not exactly what presented in the book. I have removed about 20% of the content I found very mathematical or complicated to follow. I did this based on my PhD experience, which involved me in spending lots of time doing variational formulation and computational modeling using the finite element method in FreeFEM and FEniCS. Deriving the variational formulation of partial differential equations is the primary step for using such languages and libraries. From this perspective, I removed the irrelevant parts, so the reader can focus only on the content related to finite element modeling of partial differential equations. I have also added several FreeFEM tutorial codes to demonstrate real-world application/implementation of the topics of each chapter.

Here is my selected topics of the book, presented in Jupyter notebook format:

You may decide to clone the repository and explore the notebooks and codes offline (recommended) or view the content online using nbviwer (links above).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.