Core modules¶
Before diving into grid tutorials, it helps to understand how DUNE is organized.
Learning goals
After this page, you should be able to:
- explain why DUNE is split into modules,
- identify the role of each core module,
- understand how the modules combine in a typical workflow.
Why modules?¶
DUNE is split into modules so you can combine only what you need:
- small core dependencies for basic workflows,
- optional higher-level modules for specific discretizations,
- extension modules for special grids, I/O, and application domains.
This keeps projects flexible and avoids a monolithic framework structure.
Core module roles¶
In this tutorial we start with the five core modules:
dune-common: infrastructure, utilities, configuration, and base abstractions.dune-geometry: reference elements and geometry mappings.dune-grid: grid interface and concrete grid implementations.dune-localfunctions: local shape functions and basis-related local tools.dune-istl: iterative solvers, sparse linear algebra, and preconditioners.
How they fit together¶
A typical first workflow looks like:
- create or load a grid (
dune-grid), - iterate entities and access geometry (
dune-grid+dune-geometry), - define local finite element ingredients (
dune-localfunctions), - assemble and solve linear systems (
dune-istl), - use common infrastructure throughout (
dune-common).
What comes next¶
After this core layer, you can move to higher-level modules such as:
dune-functions/dune-assemblerfor modern assembly workflows,dune-fem(including Python paths) for rapid model development,- extension modules for grid managers, mesh I/O, and specialized transformations.
The next pages start with grid concepts because they are the central entry point to most DUNE-based PDE codes.
Summary and next steps¶
You now have the module-level map of DUNE and the role of the five core modules. Continue with Grid Basics to start working with concrete grids and grid views.