$ show geodynamics/aspect
ASPECT (Advanced Solver for Problems in Earth's ConvecTion) is a massively parallel, finite-element geodynamics simulation code built on the deal.II library. It solves the Stokes and advection-diffusion equations for mantle convection, lithosphere dynamics, melt migration, and related tectonic processes. The code features a highly modular plugin architecture with registration macros for material models, heating models, boundary conditions, postprocessors, mesh refinement, particle tracking, and more. It includes an extensive benchmark suite for code verification and numerous cookbooks demonstrating real geodynamic applications. The repository also bundles the Geodynamic World Builder (contrib/world_builder), a standalone library for constructing initial temperature, composition, and velocity fields from structured input files. ASPECT is actively developed with continuous integration, Docker support, and coupling to external tools like Landlab and FastScape for surface processes.
The LLM identified 2 files worth highlighting for reuse:
Provides the AsciiDataBase, AsciiDataInitial, AsciiDataBoundary, and AsciiDataProfile classes for reading columnar ASCII data files with spatial interpolation. These utilities are parameterized by file path, column indices, and coordinate system, making them reusable for any simulation code that needs to load tabular data (e.g., boundary conditions, initial fields, material properties). The implementation handles comment lines, non-equidistant points, and multiple data columns, and can be extracted with minimal adaptation.
The Geodynamic World Builder (GWB) is a standalone C++ library for constructing initial temperature, composition, velocity, topography, and grain-size fields for geodynamic models. It uses a JSON-based input format to describe tectonic features (subducting plates, oceanic/continental plates, plumes, faults, mantle layers) and their associated property models. The library has its own plugin system for extensibility, supports Cartesian and spherical coordinate systems, and provides C, Fortran, and Python interfaces. It is already packaged as a separate project within the ASPECT repository and can be used independently.