GithubHelp home page GithubHelp logo

iitrabhi / fenics-workshop Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 4.0 9.02 MB

Tutorials and exercises for learning to use FEniCS [Website under construction]

Home Page: https://abhigupta.io/fenics-workshop

License: MIT License

Jupyter Notebook 100.00%
fenics hpc newtons-method picard-approximations workshop

fenics-workshop's Introduction

Introduction to FEniCS

This is a five-day course focused on solving partial differential equations (PDEs) using the FEniCS software package. The goal is to introduce the students to PDEs encountered in various engineering and science disciplines, such as solid mechanics, heat transfer, and mass transport.

The course materials, including tutorials and exercises, were created as part of a five-day workshop at IIT Madras, in collaboration with Vanderbilt University, USA. These materials are presented in Jupyter Notebooks, which allow you to see both the code and its explanations, as well as the results, all together.

The tutorials are comprehensive notebooks that demonstrate how to approach different types of problems using FEniCS. On the other hand, the exercises are meant to be interactive, and they encourage you to expand the notebooks by adding new functionalities. This way, you can develop your expertise in using FEniCS.

If you just want to view the tutorials and exercises without making any changes, you can access them on on nbviewer without installing FEniCS. However, if you want to edit and undertake the exercises, you will need to install FEniCS. Additionally, you have the option to either clone the repository or download the code from the provided link.

What is FEniCS

FEniCS is an acronym that stands for "Finite Element Computational Software." The inclusion of "ni" in the name is to create a balanced and appealing composition. The FEniCS software package was compiled at the University of Chicago, whose Phoenix mascot likely influenced the choice of the name.

FEniCS is a high-performance computing (HPC) capable tool that efficiently utilizes supercomputers and high-performance clusters to solve complex scientific problems. It supports parallel computing, JIT compilation, and integrates with PETSc and MPI for scalability and performance. Its HPC capabilities enable researchers to perform large-scale simulations and analyses effectively.

Contents

Where to find help

When in doubt about any specific FEniCS command or implementation, there are several resources you can refer to for clarification and assistance:

  1. FEniCS Book: The official FEniCS book is an invaluable resource. It provides comprehensive documentation, tutorials, examples, and detailed explanations of all FEniCS functionalities. You can find it at: The FEniCS Book
  2. FEniCS Q&A Forum: The FEniCS Q&A forum is an active community where users and developers discuss issues, ask questions, and share knowledge about FEniCS. You can post your questions here and get help from experienced FEniCS users and developers. Access the forum at FEniCS discourse
  3. FEniCS Workshop Slack channel: You can also join the FEniCS workshop community on Slack to connect with other users, developers, and experts in the field. Slack is an excellent platform for real-time discussions, sharing knowledge, and getting help with FEniCS-related topics. You can join the Slack community by using this link.
  4. FEniCS online documentation: The online documentation since V1.3.0 is available at this link. You can go into the python folder of any version to find the syntax and meaning of different commands. The latest version is not that descriptive, and thus I recommend checking out older documentation, as most of the commands are the same.

Note: Please go through the official community page here.

Books to read

  1. Bleyer, Jeremy. “Numerical Tours of Continuum Mechanics Using FEniCS,” n.d., 105.
  2. Langtangen, Hans Petter, and Anders Logg. “Solving PDEs in Python – The FEniCS Tutorial Volume I,” n.d., 153.
  3. Langtangen, Hans Petter, and Kent-Andre Mardal. “Introduction to Numerical Methods for Variational Problems”. Vol. 21. Texts in Computational Science and Engineering. Cham: Springer International Publishing, 2019. https://doi.org/10.1007/978-3-030-23788-2.
  4. Logg, Anders, Kent-Andre Mardal, and Garth Wells, eds. “Automated Solution of Differential Equations by the Finite Element Method”. Vol. 84. Lecture Notes in Computational Science and Engineering. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. https://doi.org/10.1007/978-3-642-23099-8.

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.