deal.II — a General Purpose Object Oriented Finite Element Library

deal.II — a General Purpose Object Oriented Finite Element Library

Vol. V, No. N, Month 20YY | W. BANGERTH, Texas A&M University and R. HARTMANN, German Aerospace Center (DLR) and G. KANSCHAT, Universität Heidelberg
The paper provides an overview of deal.II, a general-purpose finite element library written in C++. The library employs advanced object-oriented and data encapsulation techniques to break down finite element implementations into smaller, modular components that can be combined to fit various user requirements. This approach supports a wide range of scientific applications, programming methodologies, and application-specific algorithms without imposing a rigid framework. The paper details the abstractions used for defining geometric information of meshes, handling degrees of freedom associated with finite element spaces, linear algebra, input/output capabilities, and interfaces to other software tools such as visualization tools. It also includes results from applications built on deal.II to demonstrate its capabilities. Key aspects covered include: - **Mesh Classes and Iterators**: The central class `Triangulation` manages the mesh structure, supporting adaptive meshing and efficient data access through STL-like iterators. - **Finite Element Descriptions**: The `FiniteElement` class structure supports various finite element spaces, including tensor product elements, polynomial spaces, and vector-valued elements. - **Degrees of Freedom Handler**: The `DoFHandler` class provides a global enumeration of degrees of freedom, allowing for flexible allocation of vectors and matrices. - **Linear Systems**: The library supports numerical quadrature, mapping of reference cells to real space, and integration over cells and faces using the `FEValues` abstraction. - **Linear Algebra**: deal.II includes comprehensive linear algebra components for sparse systems, including sparse matrices, preconditioning methods, and iterative solvers. - **Interfaces to Other Software**: deal.II interfaces with external programs for grid generation, linear algebra, parallelization, and visualization. The paper concludes with a discussion on the extensive documentation and error detection features of deal.II, which include a user guide and a reference handbook.The paper provides an overview of deal.II, a general-purpose finite element library written in C++. The library employs advanced object-oriented and data encapsulation techniques to break down finite element implementations into smaller, modular components that can be combined to fit various user requirements. This approach supports a wide range of scientific applications, programming methodologies, and application-specific algorithms without imposing a rigid framework. The paper details the abstractions used for defining geometric information of meshes, handling degrees of freedom associated with finite element spaces, linear algebra, input/output capabilities, and interfaces to other software tools such as visualization tools. It also includes results from applications built on deal.II to demonstrate its capabilities. Key aspects covered include: - **Mesh Classes and Iterators**: The central class `Triangulation` manages the mesh structure, supporting adaptive meshing and efficient data access through STL-like iterators. - **Finite Element Descriptions**: The `FiniteElement` class structure supports various finite element spaces, including tensor product elements, polynomial spaces, and vector-valued elements. - **Degrees of Freedom Handler**: The `DoFHandler` class provides a global enumeration of degrees of freedom, allowing for flexible allocation of vectors and matrices. - **Linear Systems**: The library supports numerical quadrature, mapping of reference cells to real space, and integration over cells and faces using the `FEValues` abstraction. - **Linear Algebra**: deal.II includes comprehensive linear algebra components for sparse systems, including sparse matrices, preconditioning methods, and iterative solvers. - **Interfaces to Other Software**: deal.II interfaces with external programs for grid generation, linear algebra, parallelization, and visualization. The paper concludes with a discussion on the extensive documentation and error detection features of deal.II, which include a user guide and a reference handbook.
Reach us at info@study.space
[slides] deal.II%E2%80%94A general-purpose object-oriented finite element library | StudySpace