version 0.6.0
Loading...
Searching...
No Matches
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.
 
integer function, dimension(3) get_relative_neighbor_id_containing_point (position)
 Returns the relative neighbour id (if any) containing the point.
 

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