Nguyen Lab Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
fenicsx [2023/03/24 16:34] – [FEniCSx on Linux and macOS] bdatta1fenicsx [2024/04/18 10:33] (current) – [Learning FEniCSx] bdatta1
Line 1: Line 1:
-==== What is FEniCSx =====+====FEniCSx =====
  
-FEniCSx is an open source multi-platform computing environment to solve partial differential equations using finite element method. FEniCSx supports parallel computing with Python and C++ interface. FEniCSx is comprised of the libraries UFL, Basix, FFCx and DOLFINx which are the build blocks of it. To learn more about FEniCSx: https://fenicsproject.org.+FEniCSx is an open-source multi-platform computing environment to solve partial differential equations using the finite element method. FEniCSx supports parallel computing with Python and C++ interface. FEniCSx is comprised of the libraries UFL, Basix, FFCxand DOLFINx which are the build blocks of it. To learn more about FEniCSx: [[https://fenicsproject.org]].
  
-The FEniCS project originally started in 2003 and was known as FEniCS. In 2020, the developers released a new version of the library and renamed FEniCS as FEniCSx. The latest stable version of legacy FEniCS was released on April 2019 and its barely updated. But many tutorials and legacy codes are perhaps written in legacy FEniCS. So you may want to install a version of it. We will demonstrate installing both versions on multiple different platforms here.+The FEniCS project originally started in 2003 and was known as FEniCS. In 2020, the developers released a new version of the library and renamed FEniCS as FEniCSx. The latest stable version of legacy FEniCS was released in April 2019 and it'barely updated. But many tutorials and legacy codes are perhaps written in legacy FEniCS. So you may want to install a version of it. We will demonstrate installing both versions on multiple different platforms here
 + 
 +Both FEniCSx and FEniCS are available on Linux, macOS, and Windows. You can download and install it in different ways. Check out the options here for FEniCSx: [[https://github.com/FEniCS/dolfinx]] and here for legacy FEniCS: [[https://fenicsproject.org/download/archive/]]. For both versions, our preferred approach is to install them via Anaconda.
  
-Both FEniCSx and FEniCS are available on Linux, macOS, and Windows. You can download and install it in different ways. Check out the options here for FEniCSx: https://github.com/FEniCS/dolfinx and here for legacy FEniCS: https://fenicsproject.org/download/archive/. For both versions, our preferred approach is to install them via Anaconda. 
  
 ==== Installation on Windows ===== ==== Installation on Windows =====
Line 200: Line 201:
 </code> </code>
   - Now run the python code from the Ubuntu terminal: <code>(fenicsx) $ python3 poisson.py </code>    - Now run the python code from the Ubuntu terminal: <code>(fenicsx) $ python3 poisson.py </code> 
-  - This should save ''%%.h5%%'' and ''%%.xdmf%%'' files with the results and save the mesh and contour plot of the primary variable ''%%.pdf%%'' files in the working directory.+  - This should return the calculated error of the finite element solution and save ''%%.h5%%'' and ''%%.xdmf%%'' files with the results and save the mesh and contour plot of the primary variable ''%%.pdf%%'' files in the working directory.
  
 ==== A few more settings ===== ==== A few more settings =====
Line 241: Line 242:
 Since FEniCSx was released very recently, there aren't many tutorial or resources available based on FEniCSx. Please check the first two web resources which demonstrates some wonderful problems using FEniCSx. On the other hand, legacy FEniCS has numerous hands-on tutorials, books, and lecture series available. Fortunately, most of the concepts and APIs are similar between FEniCS and FEniCSx, so it shouldn't be hard to use those resources. In addition, FEniCSx developers are active in responding questions and concerns. Since FEniCSx was released very recently, there aren't many tutorial or resources available based on FEniCSx. Please check the first two web resources which demonstrates some wonderful problems using FEniCSx. On the other hand, legacy FEniCS has numerous hands-on tutorials, books, and lecture series available. Fortunately, most of the concepts and APIs are similar between FEniCS and FEniCSx, so it shouldn't be hard to use those resources. In addition, FEniCSx developers are active in responding questions and concerns.
  
-  - https://jsdokken.com/dolfinx-tutorial/ +  - The FEniCx tutorial: https://jsdokken.com/dolfinx-tutorial/ 
-  - https://fenicsproject.org/olddocs/dolfin/1.3.0/python/demo/index.html +  - Numerical tours of computational mechanics with FEniCSx: https://bleyerj.github.io/comet-fenicsx/index.html 
-  - https://docs.fenicsproject.org/dolfinx/main/python/demos.html +  - FEniCSx demos on the official site: https://docs.fenicsproject.org/dolfinx/main/python/demos.html 
-  - Courses offered using FEniCS: https://fenicsproject.org/pub/course/lectures/+  - Legacy FEniCS demos on the official site: https://fenicsproject.org/olddocs/dolfin/1.3.0/python/demo/index.html
   - Logg, Anders, Kent-Andre Mardal, and Garth Wells, eds. Automated solution of differential equations by the finite element method: The FEniCS book. Vol. 84. Springer Science & Business Media, 2012. (https://doi.org/10.1007/978-3-642-23099-8)   - Logg, Anders, Kent-Andre Mardal, and Garth Wells, eds. Automated solution of differential equations by the finite element method: The FEniCS book. Vol. 84. Springer Science & Business Media, 2012. (https://doi.org/10.1007/978-3-642-23099-8)
   - Langtangen, Hans Petter, and Anders Logg. Solving PDEs in python: the FEniCS tutorial I. Springer Nature, 2017. (https://doi.org/10.1007/978-3-319-52462-7)   - Langtangen, Hans Petter, and Anders Logg. Solving PDEs in python: the FEniCS tutorial I. Springer Nature, 2017. (https://doi.org/10.1007/978-3-319-52462-7)
 +  - Courses offered using FEniCS: https://fenicsproject.org/pub/course/lectures/
  
  
DokuWiki CC Attribution-Share Alike 4.0 International