Harmonica is a Python library for forward modeling, processing, and inversion of gravity and magnetic data, part of the Fatiando a Terra project. It provides high-performance, Numba-accelerated kernels for computing gravitational and magnetic fields of various geometric bodies (prisms, tesseroids, point masses, ellipsoids, dipoles) and supports equivalent source interpolation, frequency-domain grid transformations (upward continuation, reduction to pole, derivatives), spherical harmonic models (IGRF), and Euler deconvolution. The library is designed for geoscientists and educators, integrating tightly with the scientific Python ecosystem (xarray, scikit-learn, pygmt, verde). It features a scikit-learn-like API for its gridder classes, extensive documentation and testing, and is actively maintained as part of the Fatiando project. While its core functionality is domain-specific, the code exhibits strong software engineering practices: modular architecture, Numba JIT compilation, consistent interfaces, and comprehensive CI/CD.
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.