% File: ~/domain/domain/loadBalancer/ReleaseHeavierToLighterNeighbours.tex 
% What: "@(#) ReleaseHeavierToLighterNeighbours.tex, revA"

\noindent {\bf Files}   \\
\indent \#include $<\tilde{
}$/domain/loadBalancer/ReleaseHeavierToLighterNeighbours.h$>$  \\ 

\noindent {\bf Clas Decleration}  \\
\indent clas ReleaseHeavierToLighterNeighbours: public LoadBalancer \\

\noindent {\bf Clas Hierarchy} \\
\indent  LoadBalancer \\
\indent\indent {\bf ReleaseHeavierToLighterNeighbours} \\


\noindent {\bf Description}  \\
\indent A ReleaseHeavierToLighterNeighbours is an object used to balance a
PartitionedDomain. It does this by shedding the boundary vertices on
the heaviest loaded partition (subdomain). \\

\noindent {\bf Clas Interface}  \\
\indent\indent  // Constructors  \\
\indent\indent {\em ReleaseHeavierToLighterNeighbours(); }\\ 
\indent\indent {\em ReleaseHeavierToLighterNeighbours(double
factorGreater, int numReleases);} \\ \\ 
\indent\indent // Destructor  \\
\indent\indent {\em virtual~ $\tilde{}$ReleaseHeavierToLighterNeighbours();}\\\\
\indent\indent // Public Methods  \\
\indent\indent {\em virtual int balance(Graph \&theWeightedGraph) =0;} \\ \\


\noindent {\bf  Constructors  }\\
\indent {\em ReleaseHeavierToLighterNeighbours(); }\\ 
Sets {\em numRealeases} to $1$ and {\em factorGreater} to $1.0$. These
are the paramemeters used in the {\em balance()} method. \\

\indent {\em ReleaseHeavierToLighterNeighbours(double factorGreater,
int numReleases);} \\ 
Sets the parameters used in the {\em balance()} method. \\

\noindent {\bf Destructor } \\
\indent {\em virtual~ $\tilde{}$ReleaseHeavierToLighterNeighbours();}  \\ 
Does nothing. \\

\noindent {\bf  Public Methods} \\
\indent {\em virtual int balance(Graph \&theWeightedGraph) =0;} \\ 
For {\em numRelease} times the Vertices of {\em theWeightedGraph} are
iterated through. For each Vertex, $i$, {\em releaseBoundary(i,
theWeightedGraph, true, factorGreater)} is invoked on
the DomainPartitioner. Returns $0$ if succesfull, otherwise a negative
number and a warning message are returned if either no link has been
set to the DomainPartitioner or {\em releaseBoundary()} returns a
negative number. \\ 



