Tree-based solvers for adaptive mesh refinement code FLASH - I: gravity and optical depths
Abstract: We describe an OctTree algorithm for the MPI-parallel, adaptive mesh-refinement code {\sc FLASH}, which can be used to calculate the gas self-gravity, and also the angle-averaged local optical depth, for treating ambient diffuse radiation. The algorithm communicates to the different processors only those parts of the tree that are needed to perform the tree walk locally. The advantage of this approach is a relatively low memory requirement, important in particular for the optical depth calculation, which needs to process information from many different directions. This feature also enables a general tree-based radiation transport algorithm that will be described in a subsequent paper, and delivers excellent scaling up to at least 1500 cores. Boundary conditions for gravity can be either isolated or periodic, and they can be specified in each direction independently, using a newly developed generalisation of the Ewald method. The gravity calculation can be accelerated with the {\em adaptive block update} technique by partially re-using the solution from the previous time-step. Comparison with the {\sc Flash} internal multi-grid gravity solver shows that tree based methods provide a competitive alternative, particularly for problems with isolated or mixed boundary conditions. We evaluate several multipole acceptance criteria (MACs) and identify a relatively simple APE MAC which provides high accuracy at low computational cost. The optical depth estimates are found to agree very well with those of the {\sc RADMC-3D} radiation transport code, with the tree solver being much faster. Our algorithm is available in the standard release of the {\sc FLASH} code in version 4.0 and later.
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.
Top Community Prompts
Collections
Sign up for free to add this paper to one or more collections.