ALL 0.9.3
A Loadbalacing Library
Loading...
Searching...
No Matches
all_module::all_t Type Reference

The object oriented API is this object. It contains all relevant functions. More...

Public Member Functions

procedure balance (this)
 Run loadbalancer and calculate new vertices.
 
procedure finalize (this)
 Delete the loadbalance object.
 
procedure get_dimension (this, dim)
 Get current dimension from loadbalancer.
 
procedure get_gamma (this, gamma)
 Retrieve currently set gamma value of balancer.
 
procedure get_length_of_work (this, length)
 Retrieve length of work array.
 
procedure get_neighbors (this, neighbors)
 Retrieve list of neighboring ranks (must be correct size already)
 
procedure get_number_of_neighbors (this, count)
 Retrieve number of neighbors (i.e. length of neighbors list)
 
procedure get_number_of_vertices (this, n)
 Retrieve number of vertices for current vertices.
 
procedure get_prev_vertices (this, vertices)
 Retrieve vertices from before loadbalancing.
 
procedure get_vertices (this, vertices)
 Retrieve current vertices.
 
procedure get_vertices_alloc (this, vertices)
 Same function as get_vertices, but takes an allocatable array, and resizes automatically.
 
procedure get_work (this, work)
 Retrieve first element of work array.
 
procedure get_work_array (this, work)
 Retrieve work array, which must already be the correct size.
 
procedure init (this, method, dim, gamma)
 Initialises the loadbalancer.
 
procedure print_vtk_outlines (this, step)
 Print VTK outlines (must be enabled in build step)
 
procedure print_vtk_vertices (this, step)
 Print VTK domain vertices (must be enabled in build step)
 
procedure set_communicator (this, comm)
 Set the MPI communicator with an mpi_f08 object.
 
procedure set_gamma (this, gamma)
 Set gamma value for load balancer.
 
procedure set_method_data_histgram (this, nbins)
 Set number of bins for histogram method.
 
procedure set_min_domain_size (this, domain_size)
 Set a minimum domain size.
 
procedure set_proc_grid_params (this, loc, ranks)
 Set the grid parameters for this process.
 
procedure set_proc_tag (this, tag)
 Set process identifying tag for output.
 
procedure set_sys_size (this, syssize)
 Set size of system, which is required for the histogram method.
 
procedure set_vertices (this, vertices)
 Set new vertices.
 
procedure set_work (this, work)
 Set the work of this process.
 
procedure set_work_multi (this, work)
 Set multi dimensional work of this process.
 
procedure setup (this)
 Set up the loadbalancer.
 

Detailed Description

The object oriented API is this object. It contains all relevant functions.

Definition at line 222 of file ALL_module.F90.

Member Function/Subroutine Documentation

◆ balance()

procedure all_module::all_t::balance ( class(all_t), intent(in) this)

Run loadbalancer and calculate new vertices.

Definition at line 243 of file ALL_module.F90.

◆ finalize()

procedure all_module::all_t::finalize ( class(all_t), intent(in) this)

Delete the loadbalance object.

Definition at line 227 of file ALL_module.F90.

◆ get_dimension()

procedure all_module::all_t::get_dimension ( class(all_t), intent(in) this,
integer(c_int), intent(out) dim )

Get current dimension from loadbalancer.

Definition at line 249 of file ALL_module.F90.

◆ get_gamma()

procedure all_module::all_t::get_gamma ( class(all_t), intent(in) this,
real(c_double), intent(out) gamma )

Retrieve currently set gamma value of balancer.

Definition at line 244 of file ALL_module.F90.

◆ get_length_of_work()

procedure all_module::all_t::get_length_of_work ( class(all_t), intent(in) this,
integer(c_int), intent(out) length )

Retrieve length of work array.

Definition at line 250 of file ALL_module.F90.

◆ get_neighbors()

procedure all_module::all_t::get_neighbors ( class(all_t), intent(in) this,
integer(c_int), dimension(:), intent(out) neighbors )

Retrieve list of neighboring ranks (must be correct size already)

Definition at line 254 of file ALL_module.F90.

◆ get_number_of_neighbors()

procedure all_module::all_t::get_number_of_neighbors ( class(all_t), intent(in) this,
integer(c_int), intent(out) count )

Retrieve number of neighbors (i.e. length of neighbors list)

Definition at line 253 of file ALL_module.F90.

◆ get_number_of_vertices()

procedure all_module::all_t::get_number_of_vertices ( class(all_t), intent(in) this,
integer(c_int), intent(out) n )

Retrieve number of vertices for current vertices.

Parameters
[out]nset to number of new vertices

Definition at line 245 of file ALL_module.F90.

◆ get_prev_vertices()

procedure all_module::all_t::get_prev_vertices ( class(all_t), intent(in) this,
real(c_double), dimension(:, :), intent(out) vertices )

Retrieve vertices from before loadbalancing.

Parameters
[out]verticesset to prev vertices, must be exact size (dim,n), unchecked!

Definition at line 248 of file ALL_module.F90.

◆ get_vertices()

procedure all_module::all_t::get_vertices ( class(all_t), intent(in) this,
real(c_double), dimension(:, :), intent(out) vertices )

Retrieve current vertices.

Parameters
[out]verticesset to new vertices, must be exact size (dim,n)

Definition at line 246 of file ALL_module.F90.

◆ get_vertices_alloc()

procedure all_module::all_t::get_vertices_alloc ( class(all_t), intent(in) this,
real(c_double), dimension(:, :), intent(inout), allocatable vertices )

Same function as get_vertices, but takes an allocatable array, and resizes automatically.

Parameters
[in,out]verticesset to new vertices, may be reallocated to fit

Definition at line 247 of file ALL_module.F90.

◆ get_work()

procedure all_module::all_t::get_work ( class(all_t), intent(in) this,
real(c_double), intent(out) work )

Retrieve first element of work array.

Definition at line 251 of file ALL_module.F90.

◆ get_work_array()

procedure all_module::all_t::get_work_array ( class(all_t), intent(in) this,
real(c_double), dimension(:), intent(out) work )

Retrieve work array, which must already be the correct size.

Definition at line 252 of file ALL_module.F90.

◆ init()

procedure all_module::all_t::init ( class(all_t), intent(out) this,
integer, intent(in) method,
integer, intent(in) dim,
real(c_double), intent(in) gamma )

Initialises the loadbalancer.

Parameters
[out]thisteh ALL object is returned
[in]methodMust be one of the ALL_* method values
[in]dimdimensionality of system
[in]gammagamma value for load balancer (ignored for TENSOR and STAGGERED)

Definition at line 226 of file ALL_module.F90.

◆ print_vtk_outlines()

procedure all_module::all_t::print_vtk_outlines ( class(all_t), intent(in) this,
integer(c_int), intent(in) step )

Print VTK outlines (must be enabled in build step)

Parameters
[in]stepcurrent step, used for filename

Definition at line 256 of file ALL_module.F90.

◆ print_vtk_vertices()

procedure all_module::all_t::print_vtk_vertices ( class(all_t), intent(in) this,
integer(c_int), intent(in) step )

Print VTK domain vertices (must be enabled in build step)

Parameters
[in]stepcurrent step, used for filename

Definition at line 257 of file ALL_module.F90.

+ Here is the call graph for this function:

◆ set_communicator()

procedure all_module::all_t::set_communicator ( class(all_t), intent(in) this,
integer, intent(in) comm )

Set the MPI communicator with an mpi_f08 object.

Set the MPI communicator with an mpi oder mpif.h communicator

Parameters
[in]commMPI Communicator, not type checked!

Definition at line 238 of file ALL_module.F90.

◆ set_gamma()

procedure all_module::all_t::set_gamma ( class(all_t), intent(in) this,
real(c_double), intent(in) gamma )

Set gamma value for load balancer.

Definition at line 228 of file ALL_module.F90.

◆ set_method_data_histgram()

procedure all_module::all_t::set_method_data_histgram ( class(all_t), intent(in) this,
integer(c_int), dimension(3), intent(in) nbins )

Set number of bins for histogram method.

Parameters
[in]nbinsNumber of bins per dimension

Definition at line 241 of file ALL_module.F90.

◆ set_min_domain_size()

procedure all_module::all_t::set_min_domain_size ( class(all_t), intent(in) this,
real(c_double), dimension(this%dim), intent(in) domain_size )

Set a minimum domain size.

Parameters
[in]domain_sizeminimum domain size

Definition at line 231 of file ALL_module.F90.

◆ set_proc_grid_params()

procedure all_module::all_t::set_proc_grid_params ( class(all_t), intent(in) this,
integer, dimension(this%dim), intent(in) loc,
integer, dimension(this%dim), intent(in) ranks )

Set the grid parameters for this process.

Parameters
[in]locindex of domain in dim directions (0-indexed!)
[in]rankstotal number of domains in dim directions

Definition at line 229 of file ALL_module.F90.

◆ set_proc_tag()

procedure all_module::all_t::set_proc_tag ( class(all_t), intent(in) this,
integer, intent(in) tag )

Set process identifying tag for output.

Parameters
[in]tagtag of local process, only output in VTK outlines

Definition at line 230 of file ALL_module.F90.

◆ set_sys_size()

procedure all_module::all_t::set_sys_size ( class(all_t), intent(in) this,
real(c_double), dimension(:), intent(in) syssize )

Set size of system, which is required for the histogram method.

Parameters
[in]syssizesystem size

Definition at line 240 of file ALL_module.F90.

◆ set_vertices()

procedure all_module::all_t::set_vertices ( class(all_t), intent(in) this,
real(c_double), dimension(:, :), intent(in) vertices )

Set new vertices.

Parameters
[in]verticesvertices of domain, for n domains must have shape: (dim,n)

Definition at line 234 of file ALL_module.F90.

◆ set_work()

procedure all_module::all_t::set_work ( class(all_t), intent(in) this,
real(c_double), intent(in) work )

Set the work of this process.

Parameters
[in]workwork of this domain

Definition at line 232 of file ALL_module.F90.

◆ set_work_multi()

procedure all_module::all_t::set_work_multi ( class(all_t), intent(in) this,
real(c_double), dimension(:), intent(in) work )

Set multi dimensional work of this process.

Parameters
[in]workmulti dimensional work of this domain

Definition at line 233 of file ALL_module.F90.

◆ setup()

procedure all_module::all_t::setup ( class(all_t), intent(in) this)

Set up the loadbalancer.

Definition at line 242 of file ALL_module.F90.


The documentation for this type was generated from the following file: