version 0.6.0
mod_mpi_localization Module Reference

Localization of the processor as regards physical boundaries. More...

Functions/Subroutines

logical function is_periodic (direction)
 Returns true if there is a periodicity condition in the direction.
 
integer function get_neighbor_id_containing_point (position)
 Returns the absolute ID of the neighbour where the point should reside. More...
 
integer function, dimension(3) get_relative_neighbor_id_containing_point (position)
 Returns the relative neighbour id (if any) containing the point. More...
 

Detailed Description

This module helps to know if a processor is positioned on a physical boundary or not, thanks to as set of functions.

Note that periodic boundaries are not considered as physical boundaries. To know is a processor is positionned on periodic boundary, use is_proc_on_left_periodic, is_proc_on_right_periodic, is_proc_on_bottom_periodic, etc. defined in variables_mpi module.

Function/Subroutine Documentation

◆ get_neighbor_id_containing_point()

integer function mod_mpi_localization::get_neighbor_id_containing_point ( double precision, dimension(:), intent(in)  position)
Note
This is a neighbouring test, we don't search a priori for the exact node that contains the points. This is relevant if the point is far from our node and should reside somewhere else.
Todo:
Write the function answering the former note.
Note
MCO: I have change this to return diagonal nodes as well. Has to verify that this still works with CP algorithms

◆ get_relative_neighbor_id_containing_point()

integer function, dimension(3) mod_mpi_localization::get_relative_neighbor_id_containing_point ( double precision, dimension(:), intent(in)  position)
Returns
a 3D integer array with values being -1, 0 or +1 (left, center and right) for each dimension. If the result is [ 0,0,0 ], it means that the point resides in the current node. In 2D, the last dimension is always 0.
Note
One can recover the absolute neighbour id through the neighbor_proc variables