Abstract
The FEniCS programs we have written so far have been designed as flat Python scripts. This works well for solving simple demo problems. However, when you build a solver for an advanced application, you will quickly find the need for more structured programming. In particular, you may want to reuse your solver to solve a large number of problems where you vary the boundary conditions, the domain, and coefficients such as material parameters. In this chapter, we will see how to write general solver functions to improve the usability of FEniCS programs. We will also discuss how to utilize iterative solvers with preconditioners for solving linear systems, how to compute derived quantities, such as, e.g., the flux on a part of the boundary, and how to compute errors and convergence rates.
Keywords
- Convergence Rate
- Solver Function
- Unit Test
- Structure Mesh
- Linear Solver
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download chapter PDF
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
This chapter is published under an open access license. Please check the 'Copyright Information' section either on this page or in the PDF for details of this license and what re-use is permitted. If your intended use exceeds what is permitted by the license or if you are unable to locate the licence and re-use information, please contact the Rights and Permissions team.
Copyright information
© 2016 The Author(s)
About this chapter
Cite this chapter
Langtangen, H.P., Logg, A. (2016). Extensions: Improving the Poisson Solver. In: Solving PDEs in Python. Simula SpringerBriefs on Computing, vol 3. Springer, Cham. https://doi.org/10.1007/978-3-319-52462-7_5
Download citation
DOI: https://doi.org/10.1007/978-3-319-52462-7_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-52461-0
Online ISBN: 978-3-319-52462-7
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)