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:33] – [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 56: Line 57:
 As of March 2023, the latest stable release of ''%%dolfinx%%'' available via Anaconda is 0.6. If you build FEniCSx from the source, you can perhaps install 0.7. As of March 2023, the latest stable release of ''%%dolfinx%%'' available via Anaconda is 0.6. If you build FEniCSx from the source, you can perhaps install 0.7.
  
-  - Once Anaconda is properly installed, create an environment for FEniCSx. In addition to the ''%%dolfinx%%'' library, we will install ''%%mpich%%'', ''%%pyvista%%'', ''%%matplotlib%%'', and ''%%cycler%%''. Parallel processing library ''%%mpich%%'' allows parallel processing of different operations within FEniCSx and the other three packages are used for quick visualization. Standard installation of Anaconda already comes with these three packages but we will still need to install them inside the FEniCSx environment. <code>+  - Once Anaconda is properly installed, create an environment for FEniCSx. In addition to the ''%%dolfinx%%'' library, we will install ''%%mpich%%'', ''%%pyvista%%'', ''%%matplotlib%%'', and ''%%cycler%%''. Parallel processing library ''%%mpich%%'' allows different multi-processor operations within FEniCSx and the other three packages are used for quick visualization. Standard installation of Anaconda already comes with these three packages but we will still need to install them inside the FEniCSx environment. <code>
 (base)    $ conda create -n fenicsx (base)    $ conda create -n fenicsx
 (base)    $ conda activate fenicsx (base)    $ conda activate fenicsx
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