The FARGO_THORIN code developer's guide
 All Data Structures Files Functions Variables Typedefs Macros
Functions
split.c File Reference

Split (radially) the mesh among the different processors. More...

#include "fargo.h"
Include dependency graph for split.c:

Go to the source code of this file.

Functions

void SplitDomain ()
 

Detailed Description

Split (radially) the mesh among the different processors.

A simple Round Robin algorithm is used to achieve a proper load balancing, assuming the cluster to be homogeneous. A ring described by a given process has its 5 (CPUOVERLAP) innermost zones that are ghost zones which are filled by communications with the previous inner process (unless it is the innermost process itself), and its 5 (CPUOVERLAP) outermost zones that are ghost zones which are filled by communications with the next outer process (unless it is the outermost process itself). The "active" part of the submesh described by a given process is the part of this mesh that excludes the ghost zones. For each process, the (local) radial index of the first active ring is Zero_or_active, and the (local) radial index of the last active ring is Max_or_active. MaxMO_or_active is Max_or_active for all processes, except the very last one (the outermost) for which it is Max_or_active-1 (MO stands for 'Minus One').

Definition in file split.c.

Function Documentation

void SplitDomain ( )

Definition at line 24 of file split.c.

References CPU_Number, CPU_Rank, CPUOVERLAP, debug, GLOBALNRAD, IMAX, IMIN, mastererr(), masterprint(), Max_or_active, MaxMO_or_active, NRAD, One_or_active, prs_exit(), YES, and Zero_or_active.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function: