Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
ForestClaw is a parallel library for solving PDEs on dynamic adaptive quadtree or octree meshes. Based on the highly scalable p4est quadtree/octree meshing library, ForestClaw can take advantage of distributed parallelism on desktops, clusters, as well as supercomputers.
A distinguishing feature of ForestClaw is the fact that the multi-resolution grid hierarchy is not stored as overlapping, nested grids as is conventionally done in block-structured Cartesian grid codes, but rather as a composite structure of non-overlapping fixed sized grids which are stored as leaves in a forest of quad- or octrees. The basic adaptive algorithm that we use does not differ in any fundamental way from that proposed by Berger and Oliger (JCP, 1984).
The name "ForestClaw" derives from the use of a "forest-of-octrees" paradigm in p4est, and the original set of solvers from the ClawPack family of solvers for hyperbolic systems of conservations laws (CLAW = Conservation LAW). However, the core routines in ForestClaw can be extended to include any grids and solvers suitable for logically Cartesian meshes. Users can create their own grid and solver types and still take complete advantage of the generic adaptive infrastructure layer provided by ForestClaw.
The core routines in ForestClaw manage the user input options, initial meshing and subsequent tagging and regridding, communication between patches, time stepping, load balancing and re-partitioning.
ForestClaw is extended both with customized patches, and solvers. Currently, ForestClaw has built in support for leaf patches which store data in cell centered finite volume fixed sized grids. These "clawpatches" are designed to work with solvers from the extensions ClawPack 4.x, ClawPack 5.0 and GeoClaw solvers for hyperbolic conservation laws. See ClawPack for more details on the family of ClawPack solvers.
ForestClaw is free software under a BSD-style license (see COPYING). The p4est library is released under the GPL 2.0 (or later). As it is generally linked with the forestclaw code, binary distribution falls under GPL as well.