GADGET-4
domain.cc File Reference

code for work-load balanced domain decomposition More...

#include "gadgetconfig.h"
#include <mpi.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "../data/allvars.h"
#include "../data/dtypes.h"
#include "../data/mymalloc.h"
#include "../domain/domain.h"
#include "../logs/logs.h"
#include "../logs/timer.h"
#include "../main/simulation.h"
#include "../sort/peano.h"
#include "../system/system.h"
#include "../time_integration/timestep.h"
#include "../data/simparticles.h"

Go to the source code of this file.

Detailed Description

code for work-load balanced domain decomposition

This class contains the code for the domain decomposition of the simulation volume. The domains are constructed from disjoint subsets of leaves of a fiducial top-level tree that covers the full simulation volume. Domain boundaries hence run along tree-node divisions of a fiducial global BH oct-tree. As a result of this method, the gravity forces are in principle strictly independent of the way the domains are cut. The domain decomposition can be carried out for an arbitrary number of CPUs. Individual domain pieces are not cubical, but spatially coherent since the leaves are traversed in a Peano-Hilbert order and individual domains form segments along this order. This also ensures that each domain has a small surface to volume ratio, which reduces communication.

Definition in file domain.cc.