(git:6a2e663)
realspace_grid_types Module Reference

Functions/Subroutines

pure integer function, public rs_grid_locate_rank (rs_desc, rank_in, shift)
 returns the 1D rank of the task which is a cartesian shift away from 1D rank rank_in only possible if rs_grid is a distributed grid More...
 
subroutine, public rs_grid_create_descriptor (desc, pw_grid, input_settings, border_points)
 Determine the setup of real space grids - this is divided up into the creation of a descriptor and the actual grid itself (see rs_grid_create) More...
 
subroutine, public rs_grid_create (rs, desc)
 ... More...
 
pure subroutine, public rs_grid_reorder_ranks (desc, real2virtual)
 Defines a new ordering of ranks on this realspace grid, recalculating the data bounds and reallocating the grid. As a result, each MPI process now has a real rank (i.e., its rank in the MPI communicator from the pw grid) and a virtual rank (the rank of the process where the data now owned by this process would reside in an ordinary cartesian distribution). NB. Since the grid size required may change, the caller should be sure to release and recreate the corresponding rs_grids The descreal2virtual and descvirtual2real arrays can be used to map a physical rank to the 'rank' of data owned by that process and vice versa. More...
 
subroutine, public rs_grid_print (rs, iounit)
 Print information on grids to output. More...
 
subroutine, public transfer_rs2pw (rs, pw)
 ... More...
 
subroutine, public transfer_pw2rs (rs, pw)
 ... More...
 
subroutine, public rs_grid_zero (rs)
 Initialize grid to zero. More...
 
subroutine, public rs_grid_mult_and_add (rs1, rs2, rs3, scalar)
 rs1(i) = rs1(i) + rs2(i)*rs3(i) More...
 
subroutine, public rs_grid_set_box (pw_grid, rs)
 Set box matrix info for real space grid This is needed for variable cell simulations. More...
 
subroutine, public rs_grid_retain_descriptor (rs_desc)
 retains the given rs grid descriptor (see doc/ReferenceCounting.html) More...
 
subroutine, public rs_grid_release (rs_grid)
 releases the given rs grid (see doc/ReferenceCounting.html) More...
 
subroutine, public rs_grid_release_descriptor (rs_desc)
 releases the given rs grid descriptor (see doc/ReferenceCounting.html) More...
 
integer function, public rs_grid_max_ngpts (desc)
 returns the maximum number of points in the local grid of any process to account for the case where the grid may later be reordered More...
 
pure logical function, public map_gaussian_here (rs_grid, h_inv, ra, offset, group_size, my_pos)
 ... More...
 

Variables

integer, parameter, public rsgrid_distributed = 0
 
integer, parameter, public rsgrid_replicated = 1
 
integer, parameter, public rsgrid_automatic = 2
 

Detailed Description

Note
Basic type for real space grid methods
History
JGH (22-May-2002) : New routine rs_grid_zero JGH (12-Jun-2002) : Bug fix for mpi groups JGH (19-Jun-2003) : Added routine for task distribution JGH (23-Nov-2003) : Added routine for task loop separation
Author
JGH (18-Mar-2001)

Function/Subroutine Documentation

◆ rs_grid_locate_rank()

pure integer function, public realspace_grid_types::rs_grid_locate_rank ( type(realspace_grid_desc_type), intent(in)  rs_desc,
integer, intent(in)  rank_in,
integer, dimension(3), intent(in)  shift 
)

returns the 1D rank of the task which is a cartesian shift away from 1D rank rank_in only possible if rs_grid is a distributed grid

Parameters
rs_desc...
rank_in...
shift...
Returns
...

Definition at line 173 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_create_descriptor()

subroutine, public realspace_grid_types::rs_grid_create_descriptor ( type(realspace_grid_desc_type), pointer  desc,
type(pw_grid_type), intent(inout), target  pw_grid,
type(realspace_grid_input_type), intent(in)  input_settings,
integer, intent(in), optional  border_points 
)

Determine the setup of real space grids - this is divided up into the creation of a descriptor and the actual grid itself (see rs_grid_create)

Parameters
desc...
pw_grid...
input_settings...
border_points...
History
JGH (08-Jun-2003) : nsmax <= 0 indicates fully replicated grid Iain Bethune (05-Sep-2008) : modified cut heuristic (c) The Numerical Algorithms Group (NAG) Ltd, 2008 on behalf of the HECToR project
  • Create a descriptor for realspace grids with a number of border points as exactly given by the optional argument border_points. These grids are always distributed. (27.11.2013, Matthias Krack)
Author
JGH (18-Mar-2001)

Definition at line 202 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_create()

subroutine, public realspace_grid_types::rs_grid_create ( type(realspace_grid_type), intent(out)  rs,
type(realspace_grid_desc_type), intent(inout), target  desc 
)

...

Parameters
rs...
desc...

Definition at line 481 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_reorder_ranks()

pure subroutine, public realspace_grid_types::rs_grid_reorder_ranks ( type(realspace_grid_desc_type), intent(inout)  desc,
integer, dimension(:), intent(in)  real2virtual 
)

Defines a new ordering of ranks on this realspace grid, recalculating the data bounds and reallocating the grid. As a result, each MPI process now has a real rank (i.e., its rank in the MPI communicator from the pw grid) and a virtual rank (the rank of the process where the data now owned by this process would reside in an ordinary cartesian distribution). NB. Since the grid size required may change, the caller should be sure to release and recreate the corresponding rs_grids The descreal2virtual and descvirtual2real arrays can be used to map a physical rank to the 'rank' of data owned by that process and vice versa.

Parameters
desc...
real2virtual...
History
04-2009 created [Iain Bethune] (c) The Numerical Algorithms Group (NAG) Ltd, 2009 on behalf of the HECToR project

Definition at line 555 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ rs_grid_print()

subroutine, public realspace_grid_types::rs_grid_print ( type(realspace_grid_type), intent(in)  rs,
integer, intent(in)  iounit 
)

Print information on grids to output.

Parameters
rs...
iounit...
Author
JGH (17-May-2007)

Definition at line 582 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ transfer_rs2pw()

subroutine, public realspace_grid_types::transfer_rs2pw ( type(realspace_grid_type), intent(in)  rs,
type(pw_r3d_rs_type), intent(inout)  pw 
)

...

Parameters
rs...
pw...

Definition at line 655 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ transfer_pw2rs()

subroutine, public realspace_grid_types::transfer_pw2rs ( type(realspace_grid_type), intent(in)  rs,
type(pw_r3d_rs_type), intent(in)  pw 
)

...

Parameters
rs...
pw...

Definition at line 697 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_zero()

subroutine, public realspace_grid_types::rs_grid_zero ( type(realspace_grid_type), intent(in)  rs)

Initialize grid to zero.

Parameters
rs...
History
none
Author
JGH (23-Mar-2002)

Definition at line 1908 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ rs_grid_mult_and_add()

subroutine, public realspace_grid_types::rs_grid_mult_and_add ( type(realspace_grid_type), intent(in)  rs1,
type(realspace_grid_type), intent(in)  rs2,
type(realspace_grid_type), intent(in)  rs3,
real(dp), intent(in)  scalar 
)

rs1(i) = rs1(i) + rs2(i)*rs3(i)

Parameters
rs1...
rs2...
rs3...
scalar...
History
none
Author

Definition at line 1944 of file realspace_grid_types.F.

◆ rs_grid_set_box()

subroutine, public realspace_grid_types::rs_grid_set_box ( type(pw_grid_type), intent(in), target  pw_grid,
type(realspace_grid_type), intent(in)  rs 
)

Set box matrix info for real space grid This is needed for variable cell simulations.

Parameters
pw_grid...
rs...
History
none
Author
JGH (15-May-2007)

Definition at line 1983 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ rs_grid_retain_descriptor()

subroutine, public realspace_grid_types::rs_grid_retain_descriptor ( type(realspace_grid_desc_type), intent(inout)  rs_desc)

retains the given rs grid descriptor (see doc/ReferenceCounting.html)

Parameters
rs_descthe grid descriptor to retain
History
04.2009 created [Iain Bethune] (c) The Numerical Algorithms Group (NAG) Ltd, 2009 on behalf of the HECToR project

Definition at line 2001 of file realspace_grid_types.F.

Here is the caller graph for this function:

◆ rs_grid_release()

subroutine, public realspace_grid_types::rs_grid_release ( type(realspace_grid_type), intent(inout)  rs_grid)

releases the given rs grid (see doc/ReferenceCounting.html)

Parameters
rs_gridthe rs grid to release
History
03.2003 created [fawzi]
Author
fawzi

Definition at line 2015 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_release_descriptor()

subroutine, public realspace_grid_types::rs_grid_release_descriptor ( type(realspace_grid_desc_type), pointer  rs_desc)

releases the given rs grid descriptor (see doc/ReferenceCounting.html)

Parameters
rs_descthe rs grid descriptor to release
History
04.2009 created [Iain Bethune] (c) The Numerical Algorithms Group (NAG) Ltd, 2009 on behalf of the HECToR project

Definition at line 2035 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rs_grid_max_ngpts()

integer function, public realspace_grid_types::rs_grid_max_ngpts ( type(realspace_grid_desc_type), intent(in)  desc)

returns the maximum number of points in the local grid of any process to account for the case where the grid may later be reordered

Parameters
desc...
Returns
...
History
10.2011 created [Iain Bethune]

Definition at line 2106 of file realspace_grid_types.F.

◆ map_gaussian_here()

pure logical function, public realspace_grid_types::map_gaussian_here ( type(realspace_grid_type), intent(in)  rs_grid,
real(kind=dp), dimension(3, 3), intent(in)  h_inv,
real(kind=dp), dimension(3), intent(in)  ra,
integer, intent(in), optional  offset,
integer, intent(in), optional  group_size,
integer, intent(in), optional  my_pos 
)

...

Parameters
rs_grid...
h_inv...
ra...
offset...
group_size...
my_pos...
Returns
...

Definition at line 2147 of file realspace_grid_types.F.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ rsgrid_distributed

integer, parameter, public realspace_grid_types::rsgrid_distributed = 0

Definition at line 72 of file realspace_grid_types.F.

◆ rsgrid_replicated

integer, parameter, public realspace_grid_types::rsgrid_replicated = 1

Definition at line 72 of file realspace_grid_types.F.

◆ rsgrid_automatic

integer, parameter, public realspace_grid_types::rsgrid_automatic = 2

Definition at line 72 of file realspace_grid_types.F.