GADGET4

code for workload 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.
code for workload 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 toplevel tree that covers the full simulation volume. Domain boundaries hence run along treenode divisions of a fiducial global BH octtree. 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 PeanoHilbert 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.