Solving PDEs in C++

Solving PDEs in C++
Author: Yair Shapira
Publisher: SIAM
Total Pages: 775
Release: 2012-06-07
Genre: Computers
ISBN: 1611972167

In this much-expanded second edition, author Yair Shapira presents new applications and a substantial extension of the original object-oriented framework to make this popular and comprehensive book even easier to understand and use. It not only introduces the C and C++ programming languages, but also shows how to use them in the numerical solution of partial differential equations (PDEs). The book leads readers through the entire solution process, from the original PDE, through the discretization stage, to the numerical solution of the resulting algebraic system. The high level of abstraction available in C++ is particularly useful in the implementation of complex mathematical objects, such as unstructured mesh, sparse matrix, and multigrid hierarchy, often used in numerical modeling. The well-debugged and tested code segments implement the numerical methods efficiently and transparently in a unified object-oriented approach.

Ordinary and Partial Differential Equation Routines in C, C++, Fortran, Java, Maple, and MATLAB

Ordinary and Partial Differential Equation Routines in C, C++, Fortran, Java, Maple, and MATLAB
Author: H.J. Lee
Publisher: CRC Press
Total Pages: 528
Release: 2003-11-24
Genre: Mathematics
ISBN: 0203010515

This book provides a set of ODE/PDE integration routines in the six most widely used computer languages, enabling scientists and engineers to apply ODE/PDE analysis toward solving complex problems. This text concisely reviews integration algorithms, then analyzes the widely used Runge-Kutta method. It first presents a complete code before discussin

PETSc for Partial Differential Equations: Numerical Solutions in C and Python

PETSc for Partial Differential Equations: Numerical Solutions in C and Python
Author: Ed Bueler
Publisher: SIAM
Total Pages: 407
Release: 2020-10-22
Genre: Mathematics
ISBN: 1611976316

The Portable, Extensible Toolkit for Scientific Computation (PETSc) is an open-source library of advanced data structures and methods for solving linear and nonlinear equations and for managing discretizations. This book uses these modern numerical tools to demonstrate how to solve nonlinear partial differential equations (PDEs) in parallel. It starts from key mathematical concepts, such as Krylov space methods, preconditioning, multigrid, and Newton’s method. In PETSc these components are composed at run time into fast solvers. Discretizations are introduced from the beginning, with an emphasis on finite difference and finite element methodologies. The example C programs of the first 12 chapters, listed on the inside front cover, solve (mostly) elliptic and parabolic PDE problems. Discretization leads to large, sparse, and generally nonlinear systems of algebraic equations. For such problems, mathematical solver concepts are explained and illustrated through the examples, with sufficient context to speed further development. PETSc for Partial Differential Equations addresses both discretizations and fast solvers for PDEs, emphasizing practice more than theory. Well-structured examples lead to run-time choices that result in high solver performance and parallel scalability. The last two chapters build on the reader’s understanding of fast solver concepts when applying the Firedrake Python finite element solver library. This textbook, the first to cover PETSc programming for nonlinear PDEs, provides an on-ramp for graduate students and researchers to a major area of high-performance computing for science and engineering. It is suitable as a supplement for courses in scientific computing or numerical methods for differential equations.

Numerical Solution of Partial Differential Equations by the Finite Element Method

Numerical Solution of Partial Differential Equations by the Finite Element Method
Author: Claes Johnson
Publisher: Courier Corporation
Total Pages: 290
Release: 2012-05-23
Genre: Mathematics
ISBN: 0486131599

An accessible introduction to the finite element method for solving numeric problems, this volume offers the keys to an important technique in computational mathematics. Suitable for advanced undergraduate and graduate courses, it outlines clear connections with applications and considers numerous examples from a variety of science- and engineering-related specialties.This text encompasses all varieties of the basic linear partial differential equations, including elliptic, parabolic and hyperbolic problems, as well as stationary and time-dependent problems. Additional topics include finite element methods for integral equations, an introduction to nonlinear problems, and considerations of unique developments of finite element techniques related to parabolic problems, including methods for automatic time step control. The relevant mathematics are expressed in non-technical terms whenever possible, in the interests of keeping the treatment accessible to a majority of students.

Solving PDEs in Python

Solving PDEs in Python
Author: Hans Petter Langtangen
Publisher: Springer
Total Pages: 152
Release: 2017-03-21
Genre: Computers
ISBN: 3319524623

This book offers a concise and gentle introduction to finite element programming in Python based on the popular FEniCS software library. Using a series of examples, including the Poisson equation, the equations of linear elasticity, the incompressible Navier–Stokes equations, and systems of nonlinear advection–diffusion–reaction equations, it guides readers through the essential steps to quickly solving a PDE in FEniCS, such as how to define a finite variational problem, how to set boundary conditions, how to solve linear and nonlinear systems, and how to visualize solutions and structure finite element Python programs. This book is open access under a CC BY license.

Partial Differential Equations

Partial Differential Equations
Author: Walter A. Strauss
Publisher: John Wiley & Sons
Total Pages: 467
Release: 2007-12-21
Genre: Mathematics
ISBN: 0470054565

Our understanding of the fundamental processes of the natural world is based to a large extent on partial differential equations (PDEs). The second edition of Partial Differential Equations provides an introduction to the basic properties of PDEs and the ideas and techniques that have proven useful in analyzing them. It provides the student a broad perspective on the subject, illustrates the incredibly rich variety of phenomena encompassed by it, and imparts a working knowledge of the most important techniques of analysis of the solutions of the equations. In this book mathematical jargon is minimized. Our focus is on the three most classical PDEs: the wave, heat and Laplace equations. Advanced concepts are introduced frequently but with the least possible technicalities. The book is flexibly designed for juniors, seniors or beginning graduate students in science, engineering or mathematics.

Computational Partial Differential Equations

Computational Partial Differential Equations
Author: Hans Petter Langtangen
Publisher: Springer Science & Business Media
Total Pages: 704
Release: 2013-04-17
Genre: Mathematics
ISBN: 3662011700

Targeted at students and researchers in computational sciences who need to develop computer codes for solving PDEs, the exposition here is focused on numerics and software related to mathematical models in solid and fluid mechanics. The book teaches finite element methods, and basic finite difference methods from a computational point of view, with the main emphasis on developing flexible computer programs, using the numerical library Diffpack. Diffpack is explained in detail for problems including model equations in applied mathematics, heat transfer, elasticity, and viscous fluid flow. All the program examples, as well as Diffpack for use with this book, are available on the Internet. XXXXXXX NEUER TEXT This book is for researchers who need to develop computer code for solving PDEs. Numerical methods and the application of Diffpack are explained in detail. Diffpack is a modern C++ development environment that is widely used by industrial scientists and engineers working in areas such as oil exploration, groundwater modeling, and materials testing. All the program examples, as well as a test version of Diffpack, are available for free over the Internet.

Programming for Computations - MATLAB/Octave

Programming for Computations - MATLAB/Octave
Author: Svein Linge
Publisher: Springer
Total Pages: 228
Release: 2016-08-01
Genre: Computers
ISBN: 3319324527

This book presents computer programming as a key method for solving mathematical problems. There are two versions of the book, one for MATLAB and one for Python. The book was inspired by the Springer book TCSE 6: A Primer on Scientific Programming with Python (by Langtangen), but the style is more accessible and concise, in keeping with the needs of engineering students. The book outlines the shortest possible path from no previous experience with programming to a set of skills that allows the students to write simple programs for solving common mathematical problems with numerical methods in engineering and science courses. The emphasis is on generic algorithms, clean design of programs, use of functions, and automatic tests for verification.

Programming for Computations - Python

Programming for Computations - Python
Author: Svein Linge
Publisher: Springer
Total Pages: 244
Release: 2016-07-25
Genre: Computers
ISBN: 3319324284

This book presents computer programming as a key method for solving mathematical problems. There are two versions of the book, one for MATLAB and one for Python. The book was inspired by the Springer book TCSE 6: A Primer on Scientific Programming with Python (by Langtangen), but the style is more accessible and concise, in keeping with the needs of engineering students. The book outlines the shortest possible path from no previous experience with programming to a set of skills that allows the students to write simple programs for solving common mathematical problems with numerical methods in engineering and science courses. The emphasis is on generic algorithms, clean design of programs, use of functions, and automatic tests for verification.