Solving PDEs in Python : The FEniCS Tutorial I.

Bibliographic Details
Main Author: Langtangen, Hans Petter.
Other Authors: Logg, Anders.
Format: eBook
Language:English
Published: Cham : Springer International Publishing AG, 2017.
Edition:1st ed.
Series:Simula SpringerBriefs on Computing Series
Subjects:
Online Access:Click to View
LEADER 05825nam a22004333i 4500
001 EBC5588874
003 MiAaPQ
005 20231204023214.0
006 m o d |
007 cr cnu||||||||
008 231204s2017 xx o ||||0 eng d
020 |a 9783319524627  |q (electronic bk.) 
020 |z 9783319524610 
035 |a (MiAaPQ)EBC5588874 
035 |a (Au-PeEL)EBL5588874 
035 |a (OCoLC)1066184466 
040 |a MiAaPQ  |b eng  |e rda  |e pn  |c MiAaPQ  |d MiAaPQ 
050 4 |a QA71-90 
100 1 |a Langtangen, Hans Petter. 
245 1 0 |a Solving PDEs in Python :  |b The FEniCS Tutorial I. 
250 |a 1st ed. 
264 1 |a Cham :  |b Springer International Publishing AG,  |c 2017. 
264 4 |c Ã2016. 
300 |a 1 online resource (152 pages) 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
490 1 |a Simula SpringerBriefs on Computing Series ;  |v v.3 
505 0 |a Intro -- Foreword -- Contents -- Preface -- 1 Preliminaries -- 1.1 The FEniCS Project -- 1.2 What you will learn -- 1.3 Working with this tutorial -- 1.4 Obtaining the software -- 1.4.1 Installation using Docker containers -- 1.4.2 Installation using Ubuntu packages -- 1.4.3 Testing your installation -- 1.5 Obtaining the tutorial examples -- 1.6 Background knowledge -- 1.6.1 Programming in Python -- 1.6.2 The finite element method -- 2 Fundamentals: Solving the Poisson equation -- 2.1 Mathematical problem formulation -- 2.1.1 Finite element variational formulation -- 2.1.2 Abstract finite element variational formulation -- 2.1.3 Choosing a test problem -- 2.2 FEniCS implementation -- 2.2.1 The complete program -- 2.2.2 Running the program -- 2.3 Dissection of the program -- 2.3.1 The important first line -- 2.3.2 Generating simple meshes -- 2.3.3 Defining the finite element function space -- 2.3.4 Defining the trial and test functions -- 2.3.5 Defining the boundary conditions -- 2.3.6 Defining the source term -- 2.3.7 Defining the variational problem -- 2.3.8 Forming and solving the linear system -- 2.3.9 Plotting the solution using the plot command -- 2.3.10 Plotting the solution using ParaView -- 2.3.11 Computing the error -- 2.3.12 Examining degrees of freedom and vertex values -- 2.4 Deflection of a membrane -- 2.4.1 Scaling the equation -- 2.4.2 Defining the mesh -- 2.4.3 Defining the load -- 2.4.4 Defining the variational problem -- 2.4.5 Plotting the solution -- 2.4.6 Making curve plots through the domain -- 3 A Gallery of finite element solvers -- 3.1 The heat equation -- 3.1.1 PDE problem -- 3.1.2 Variational formulation -- 3.1.3 FEniCS implementation -- 3.2 A nonlinear Poisson equation -- 3.2.1 PDE problem -- 3.2.2 Variational formulation -- 3.2.3 FEniCS implementation -- 3.3 The equations of linear elasticity -- 3.3.1 PDE problem. 
505 8 |a 3.3.2 Variational formulation -- 3.3.3 FEniCS implementation -- 3.4 The Navier-Stokes equations -- 3.4.1 PDE problem -- 3.4.2 Variational formulation -- 3.4.3 FEniCS implementation -- 3.5 A system of advection-diffusion-reaction equations -- 3.5.1 PDE problem -- 3.5.2 Variational formulation -- 3.5.3 FEniCS implementation -- 4 Subdomains and boundary conditions -- 4.1 Combining Dirichlet and Neumann conditions -- 4.1.1 PDE problem -- 4.1.2 Variational formulation -- 4.1.3 FEniCS implementation -- 4.2 Setting multiple Dirichlet conditions -- 4.3 Defining subdomains for different materials -- 4.3.1 Using expressions to define subdomains -- 4.3.2 Using mesh functions to define subdomains -- 4.3.3 Using C++ code snippets to define subdomains -- 4.4 Setting multiple Dirichlet, Neumann, and Robin conditions -- 4.4.1 Three types of boundary conditions -- 4.4.2 PDE problem -- 4.4.3 Variational formulation -- 4.4.4 FEniCS implementation -- 4.4.5 Test problem -- 4.4.6 Debugging boundary conditions -- 4.5 Generating meshes with subdomains -- 4.5.1 PDE problem -- 4.5.2 Variational formulation -- 4.5.3 FEniCS implementation -- 5 Extensions: Improving the Poisson solver -- 5.1 Refactoring the Poisson solver -- 5.1.1 A more general solver function -- 5.1.2 Writing the solver as a Python module -- 5.1.3 Verification and unit tests -- 5.1.4 Parameterizing the number of space dimensions -- 5.2 Working with linear solvers -- 5.2.1 Choosing a linear solver and preconditioner -- 5.2.2 Choosing a linear algebra backend -- 5.2.3 Setting solver parameters -- 5.2.4 An extended solver function -- 5.2.5 A remark regarding unit tests -- 5.2.6 List of linear solver methods and preconditioners -- 5.3 High-level and low-level solver interfaces -- 5.3.1 Linear variational problem and solver objects -- 5.3.2 Explicit assembly and solve -- 5.3.3 Examining matrix and vector values. 
505 8 |a 5.4 Degrees of freedom and function evaluation -- 5.4.1 Examining the degrees of freedom -- 5.4.2 Setting the degrees of freedom -- 5.4.3 Function evaluation -- 5.5 Postprocessing computations -- 5.5.1 Test problem -- 5.5.2 Flux computations -- 5.5.3 Computing functionals -- 5.5.4 Computing convergence rates -- 5.5.5 Taking advantage of structured mesh data -- 5.6 Taking the next step -- References -- Index. 
588 |a Description based on publisher supplied metadata and other sources. 
590 |a Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2023. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.  
655 4 |a Electronic books. 
700 1 |a Logg, Anders. 
776 0 8 |i Print version:  |a Langtangen, Hans Petter  |t Solving PDEs in Python  |d Cham : Springer International Publishing AG,c2017  |z 9783319524610 
797 2 |a ProQuest (Firm) 
830 0 |a Simula SpringerBriefs on Computing Series 
856 4 0 |u https://ebookcentral.proquest.com/lib/matrademy/detail.action?docID=5588874  |z Click to View