(git:6a2e663)
cube_utils Module Reference

for a given dr()/dh(r) this will provide the bounds to be used if one wants to go over a sphere-subregion of given radius More...

Functions/Subroutines

subroutine, public compute_cube_center (cube_center, rs_desc, zeta, zetb, ra, rab)
 unifies the computation of the cube center, so that differences in implementation, and thus roundoff and numerics can not lead to off-by-one errors (which can lead to out-of-bounds access with distributed grids). in principle, something similar would be needed for the computation of the cube bounds More...
 
subroutine, public return_cube_nonortho (info, radius, lb, ub, rp)
 ... More...
 
subroutine, public return_cube (info, radius, lb_cube, ub_cube, sphere_bounds)
 ... More...
 
integer function, public return_cube_max_iradius (info)
 ... More...
 
subroutine, public destroy_cube_info (info)
 ... More...
 
subroutine, public init_cube_info (info, dr, dh, dh_inv, ortho, max_radius)
 ... More...
 

Detailed Description

for a given dr()/dh(r) this will provide the bounds to be used if one wants to go over a sphere-subregion of given radius

Note
the computation of the exact sphere radius is sensitive to roundoff (e.g. compiler optimization level) and hence this small roundoff can result in energy difference of about EPS_DEFAULT in QS energies (one gridpoint more or less in the density mapping)
Author
Joost VandeVondele

Function/Subroutine Documentation

◆ compute_cube_center()

subroutine, public cube_utils::compute_cube_center ( integer, dimension(3), intent(out)  cube_center,
type(realspace_grid_desc_type), pointer  rs_desc,
real(kind=dp), intent(in)  zeta,
real(kind=dp), intent(in)  zetb,
real(kind=dp), dimension(3), intent(in)  ra,
real(kind=dp), dimension(3), intent(in)  rab 
)

unifies the computation of the cube center, so that differences in implementation, and thus roundoff and numerics can not lead to off-by-one errors (which can lead to out-of-bounds access with distributed grids). in principle, something similar would be needed for the computation of the cube bounds

Parameters
cube_center...
rs_desc...
zeta...
zetb...
ra...
rab...
History
11.2008 created [Joost VandeVondele]

Definition at line 67 of file cube_utils.F.

Here is the caller graph for this function:

◆ return_cube_nonortho()

subroutine, public cube_utils::return_cube_nonortho ( type(cube_info_type), intent(in)  info,
real(kind=dp), intent(in)  radius,
integer, dimension(3), intent(out)  lb,
integer, dimension(3), intent(out)  ub,
real(kind=dp), dimension(3), intent(in)  rp 
)

...

Parameters
info...
radius...
lb...
ub...
rp...

Definition at line 90 of file cube_utils.F.

Here is the caller graph for this function:

◆ return_cube()

subroutine, public cube_utils::return_cube ( type(cube_info_type)  info,
real(kind=dp)  radius,
integer, dimension(3)  lb_cube,
integer, dimension(3)  ub_cube,
integer, dimension(:), pointer  sphere_bounds 
)

...

Parameters
info...
radius...
lb_cube...
ub_cube...
sphere_bounds...

Definition at line 139 of file cube_utils.F.

Here is the caller graph for this function:

◆ return_cube_max_iradius()

integer function, public cube_utils::return_cube_max_iradius ( type(cube_info_type)  info)

...

Parameters
info...
Returns
...

Definition at line 174 of file cube_utils.F.

Here is the caller graph for this function:

◆ destroy_cube_info()

subroutine, public cube_utils::destroy_cube_info ( type(cube_info_type)  info)

...

Parameters
info...

Definition at line 184 of file cube_utils.F.

Here is the caller graph for this function:

◆ init_cube_info()

subroutine, public cube_utils::init_cube_info ( type(cube_info_type), intent(out)  info,
real(kind=dp), dimension(3), intent(in)  dr,
real(kind=dp), dimension(3, 3), intent(in)  dh,
real(kind=dp), dimension(3, 3), intent(in)  dh_inv,
logical, intent(in)  ortho,
real(kind=dp), intent(in)  max_radius 
)

...

Parameters
info...
dr...
dh...
dh_inv...
ortho...
max_radius...

Definition at line 211 of file cube_utils.F.

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