000 05859nam a22004453i 4500
001 EBC5588874
003 MiAaPQ
005 20240122001130.0
006 m o d |
007 cr cnu||||||||
008 231124s2017 xx o ||||0 eng d
020 _a9783319524627
_q(electronic bk.)
020 _z9783319524610
035 _a(MiAaPQ)EBC5588874
035 _a(Au-PeEL)EBL5588874
035 _a(OCoLC)1066184466
040 _aMiAaPQ
_beng
_erda
_epn
_cMiAaPQ
_dMiAaPQ
050 4 _aQA71-90
100 1 _aLangtangen, Hans Petter.
245 1 0 _aSolving PDEs in Python :
_bThe FEniCS Tutorial I.
250 _a1st ed.
264 1 _aCham :
_bSpringer International Publishing AG,
_c2017.
264 4 _c�2016.
300 _a1 online resource (152 pages)
336 _atext
_btxt
_2rdacontent
337 _acomputer
_bc
_2rdamedia
338 _aonline resource
_bcr
_2rdacarrier
490 1 _aSimula SpringerBriefs on Computing Series ;
_vv.3
505 0 _aIntro -- 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 _a3.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 _a5.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 _aDescription based on publisher supplied metadata and other sources.
590 _aElectronic 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 _aElectronic books.
700 1 _aLogg, Anders.
776 0 8 _iPrint version:
_aLangtangen, Hans Petter
_tSolving PDEs in Python
_dCham : Springer International Publishing AG,c2017
_z9783319524610
797 2 _aProQuest (Firm)
830 0 _aSimula SpringerBriefs on Computing Series
856 4 0 _uhttps://ebookcentral.proquest.com/lib/bacm-ebooks/detail.action?docID=5588874
_zClick to View
999 _c304944
_d304944