(git:6a2e663)
grid_api Module Reference

Fortran API for the grid package, which is written in C. More...

Functions/Subroutines

subroutine, public collocate_pgf_product (la_max, zeta, la_min, lb_max, zetb, lb_min, ra, rab, scale, pab, o1, o2, rsgrid, ga_gb_function, radius, use_subpatch, subpatch_pattern)
 low level collocation of primitive gaussian functions More...
 
subroutine, public integrate_pgf_product (la_max, zeta, la_min, lb_max, zetb, lb_min, ra, rab, rsgrid, hab, pab, o1, o2, radius, calculate_forces, force_a, force_b, compute_tau, use_virial, my_virial_a, my_virial_b, hdab, hadb, a_hdab, use_subpatch, subpatch_pattern)
 low level function to compute matrix elements of primitive gaussian functions More...
 
subroutine, public grid_create_basis_set (nset, nsgf, maxco, maxpgf, lmin, lmax, npgf, nsgf_set, first_sgf, sphi, zet, basis_set)
 Allocates a basis set which can be passed to grid_create_task_list. More...
 
subroutine, public grid_free_basis_set (basis_set)
 Deallocates given basis set. More...
 
subroutine, public grid_create_task_list (ntasks, natoms, nkinds, nblocks, block_offsets, atom_positions, atom_kinds, basis_sets, level_list, iatom_list, jatom_list, iset_list, jset_list, ipgf_list, jpgf_list, border_mask_list, block_num_list, radius_list, rab_list, rs_grids, task_list)
 Allocates a task list which can be passed to grid_collocate_task_list. More...
 
subroutine, public grid_free_task_list (task_list)
 Deallocates given task list, basis_sets have to be freed separately. More...
 
subroutine, public grid_collocate_task_list (task_list, ga_gb_function, pab_blocks, rs_grids)
 Collocate all tasks of in given list onto given grids. More...
 
subroutine, public grid_integrate_task_list (task_list, compute_tau, calculate_forces, calculate_virial, pab_blocks, rs_grids, hab_blocks, forces, virial)
 Integrate all tasks of in given list from given grids. More...
 
subroutine, public grid_library_init ()
 Initialize grid library. More...
 
subroutine, public grid_library_finalize ()
 Finalize grid library. More...
 
subroutine, public grid_library_set_config (backend, validate, apply_cutoff)
 Configures the grid library. More...
 
subroutine, public grid_library_print_stats (mpi_comm, output_unit)
 Print grid library statistics. More...
 

Variables

integer, parameter, public grid_func_ab = 100
 
integer, parameter, public grid_func_dadb = 200
 
integer, parameter, public grid_func_adbmdab_x = 301
 
integer, parameter, public grid_func_adbmdab_y = 302
 
integer, parameter, public grid_func_adbmdab_z = 303
 
integer, parameter, public grid_func_ardbmdarb_xx = 411
 
integer, parameter, public grid_func_ardbmdarb_xy = 412
 
integer, parameter, public grid_func_ardbmdarb_xz = 413
 
integer, parameter, public grid_func_ardbmdarb_yx = 421
 
integer, parameter, public grid_func_ardbmdarb_yy = 422
 
integer, parameter, public grid_func_ardbmdarb_yz = 423
 
integer, parameter, public grid_func_ardbmdarb_zx = 431
 
integer, parameter, public grid_func_ardbmdarb_zy = 432
 
integer, parameter, public grid_func_ardbmdarb_zz = 433
 
integer, parameter, public grid_func_dabpadb_x = 501
 
integer, parameter, public grid_func_dabpadb_y = 502
 
integer, parameter, public grid_func_dabpadb_z = 503
 
integer, parameter, public grid_func_dx = 601
 
integer, parameter, public grid_func_dy = 602
 
integer, parameter, public grid_func_dz = 603
 
integer, parameter, public grid_func_dxdy = 701
 
integer, parameter, public grid_func_dydz = 702
 
integer, parameter, public grid_func_dzdx = 703
 
integer, parameter, public grid_func_dxdx = 801
 
integer, parameter, public grid_func_dydy = 802
 
integer, parameter, public grid_func_dzdz = 803
 
integer, parameter, public grid_func_dab_x = 901
 
integer, parameter, public grid_func_dab_y = 902
 
integer, parameter, public grid_func_dab_z = 903
 
integer, parameter, public grid_func_adb_x = 904
 
integer, parameter, public grid_func_adb_y = 905
 
integer, parameter, public grid_func_adb_z = 906
 
integer, parameter, public grid_func_core_x = 1001
 
integer, parameter, public grid_func_core_y = 1002
 
integer, parameter, public grid_func_core_z = 1003
 
integer, parameter, public grid_backend_auto = 10
 
integer, parameter, public grid_backend_ref = 11
 
integer, parameter, public grid_backend_cpu = 12
 
integer, parameter, public grid_backend_dgemm = 13
 
integer, parameter, public grid_backend_gpu = 14
 
integer, parameter, public grid_backend_hip = 15
 

Detailed Description

Fortran API for the grid package, which is written in C.

Author
Ole Schuett

Function/Subroutine Documentation

◆ collocate_pgf_product()

subroutine, public grid_api::collocate_pgf_product ( integer, intent(in)  la_max,
real(kind=dp), intent(in)  zeta,
integer, intent(in)  la_min,
integer, intent(in)  lb_max,
real(kind=dp), intent(in)  zetb,
integer, intent(in)  lb_min,
real(kind=dp), dimension(3), intent(in), target  ra,
real(kind=dp), dimension(3), intent(in), target  rab,
real(kind=dp), intent(in)  scale,
real(kind=dp), dimension(:, :), pointer  pab,
integer, intent(in)  o1,
integer, intent(in)  o2,
type(realspace_grid_type)  rsgrid,
integer, intent(in)  ga_gb_function,
real(kind=dp), intent(in)  radius,
logical, optional  use_subpatch,
integer, intent(in), optional  subpatch_pattern 
)

low level collocation of primitive gaussian functions

Parameters
la_max...
zeta...
la_min...
lb_max...
zetb...
lb_min...
ra...
rab...
scale...
pab...
o1...
o2...
rsgrid...
ga_gb_function...
radius...
use_subpatch...
subpatch_pattern...
Author
Ole Schuett

Definition at line 113 of file grid_api.F.

Here is the caller graph for this function:

◆ integrate_pgf_product()

subroutine, public grid_api::integrate_pgf_product ( integer, intent(in)  la_max,
real(kind=dp), intent(in)  zeta,
integer, intent(in)  la_min,
integer, intent(in)  lb_max,
real(kind=dp), intent(in)  zetb,
integer, intent(in)  lb_min,
real(kind=dp), dimension(3), intent(in), target  ra,
real(kind=dp), dimension(3), intent(in), target  rab,
type(realspace_grid_type), intent(in)  rsgrid,
real(kind=dp), dimension(:, :), pointer  hab,
real(kind=dp), dimension(:, :), optional, pointer  pab,
integer, intent(in)  o1,
integer, intent(in)  o2,
real(kind=dp), intent(in)  radius,
logical, intent(in)  calculate_forces,
real(kind=dp), dimension(3), intent(inout), optional  force_a,
real(kind=dp), dimension(3), intent(inout), optional  force_b,
logical, intent(in), optional  compute_tau,
logical, intent(in), optional  use_virial,
real(kind=dp), dimension(3, 3), optional  my_virial_a,
real(kind=dp), dimension(3, 3), optional  my_virial_b,
real(kind=dp), dimension(:, :, :), optional, pointer  hdab,
real(kind=dp), dimension(:, :, :), optional, pointer  hadb,
real(kind=dp), dimension(:, :, :, :), optional, pointer  a_hdab,
logical, optional  use_subpatch,
integer, intent(in), optional  subpatch_pattern 
)

low level function to compute matrix elements of primitive gaussian functions

Parameters
la_max...
zeta...
la_min...
lb_max...
zetb...
lb_min...
ra...
rab...
rsgrid...
hab...
pab...
o1...
o2...
radius...
calculate_forces...
force_a...
force_b...
compute_tau...
use_virial...
my_virial_a...
my_virial_b...
hdabDerivative with respect to the primitive on the left.
hadbDerivative with respect to the primitive on the right.
a_hdab...
use_subpatch...
subpatch_pattern...

Definition at line 270 of file grid_api.F.

Here is the caller graph for this function:

◆ grid_create_basis_set()

subroutine, public grid_api::grid_create_basis_set ( integer, intent(in)  nset,
integer, intent(in)  nsgf,
integer, intent(in)  maxco,
integer, intent(in)  maxpgf,
integer, dimension(:), intent(in), target  lmin,
integer, dimension(:), intent(in), target  lmax,
integer, dimension(:), intent(in), target  npgf,
integer, dimension(:), intent(in), target  nsgf_set,
integer, dimension(:, :), intent(in)  first_sgf,
real(kind=dp), dimension(:, :), intent(in), target  sphi,
real(kind=dp), dimension(:, :), intent(in), target  zet,
type(grid_basis_set_type), intent(inout)  basis_set 
)

Allocates a basis set which can be passed to grid_create_task_list.

Parameters
nset...
nsgf...
maxco...
maxpgf...
lmin...
lmax...
npgf...
nsgf_set...
first_sgf...
sphi...
zet...
basis_set...
Author
Ole Schuett

Definition at line 564 of file grid_api.F.

◆ grid_free_basis_set()

subroutine, public grid_api::grid_free_basis_set ( type(grid_basis_set_type), intent(inout)  basis_set)

Deallocates given basis set.

Parameters
basis_set...
Author
Ole Schuett

Definition at line 670 of file grid_api.F.

◆ grid_create_task_list()

subroutine, public grid_api::grid_create_task_list ( integer, intent(in)  ntasks,
integer, intent(in)  natoms,
integer, intent(in)  nkinds,
integer, intent(in)  nblocks,
integer, dimension(:), intent(in), target  block_offsets,
real(kind=dp), dimension(:, :), intent(in), target  atom_positions,
integer, dimension(:), intent(in), target  atom_kinds,
type(grid_basis_set_type), dimension(:), intent(in), target  basis_sets,
integer, dimension(:), intent(in), target  level_list,
integer, dimension(:), intent(in), target  iatom_list,
integer, dimension(:), intent(in), target  jatom_list,
integer, dimension(:), intent(in), target  iset_list,
integer, dimension(:), intent(in), target  jset_list,
integer, dimension(:), intent(in), target  ipgf_list,
integer, dimension(:), intent(in), target  jpgf_list,
integer, dimension(:), intent(in), target  border_mask_list,
integer, dimension(:), intent(in), target  block_num_list,
real(kind=dp), dimension(:), intent(in), target  radius_list,
real(kind=dp), dimension(:, :), intent(in), target  rab_list,
type(realspace_grid_type), dimension(:), intent(in)  rs_grids,
type(grid_task_list_type), intent(inout)  task_list 
)

Allocates a task list which can be passed to grid_collocate_task_list.

Parameters
ntasks...
natoms...
nkinds...
nblocks...
block_offsets...
atom_positions...
atom_kinds...
basis_sets...
level_list...
iatom_list...
jatom_list...
iset_list...
jset_list...
ipgf_list...
jpgf_list...
border_mask_list...
block_num_list...
radius_list...
rab_list...
rs_grids...
task_list...
Author
Ole Schuett

Definition at line 720 of file grid_api.F.

Here is the caller graph for this function:

◆ grid_free_task_list()

subroutine, public grid_api::grid_free_task_list ( type(grid_task_list_type), intent(inout)  task_list)

Deallocates given task list, basis_sets have to be freed separately.

Parameters
task_list...
Author
Ole Schuett

Definition at line 934 of file grid_api.F.

Here is the caller graph for this function:

◆ grid_collocate_task_list()

subroutine, public grid_api::grid_collocate_task_list ( type(grid_task_list_type), intent(in)  task_list,
integer, intent(in)  ga_gb_function,
type(offload_buffer_type), intent(in)  pab_blocks,
type(realspace_grid_type), dimension(:), intent(in)  rs_grids 
)

Collocate all tasks of in given list onto given grids.

Parameters
task_list...
ga_gb_function...
pab_blocks...
rs_grids...
Author
Ole Schuett

Definition at line 967 of file grid_api.F.

Here is the caller graph for this function:

◆ grid_integrate_task_list()

subroutine, public grid_api::grid_integrate_task_list ( type(grid_task_list_type), intent(in)  task_list,
logical, intent(in)  compute_tau,
logical, intent(in)  calculate_forces,
logical, intent(in)  calculate_virial,
type(offload_buffer_type), intent(in)  pab_blocks,
type(realspace_grid_type), dimension(:), intent(in)  rs_grids,
type(offload_buffer_type), intent(inout)  hab_blocks,
real(kind=dp), dimension(:, :), intent(inout), target  forces,
real(kind=dp), dimension(3, 3), intent(inout), target  virial 
)

Integrate all tasks of in given list from given grids.

Parameters
task_list...
compute_tau...
calculate_forces...
calculate_virial...
pab_blocks...
rs_grids...
hab_blocks...
forces...
virial...
Author
Ole Schuett

Definition at line 1038 of file grid_api.F.

Here is the caller graph for this function:

◆ grid_library_init()

subroutine, public grid_api::grid_library_init ( void  )

Initialize grid library.

Author
Ole Schuett

Definition at line 1134 of file grid_api.F.

◆ grid_library_finalize()

subroutine, public grid_api::grid_library_finalize ( void  )

Finalize grid library.

Author
Ole Schuett

Definition at line 1148 of file grid_api.F.

◆ grid_library_set_config()

subroutine, public grid_api::grid_library_set_config ( integer, intent(in)  backend,
logical, intent(in)  validate,
logical, intent(in)  apply_cutoff 
)

Configures the grid library.

Parameters
backend: backend to be used for collocate/integrate, possible values are REF, CPU, GPU
validate: if set to true, compare the results of all backend to the reference backend
apply_cutoff: apply a spherical cutoff before collocating or integrating. Only relevant for CPU backend
Author
Ole Schuett

Definition at line 1165 of file grid_api.F.

Here is the call graph for this function:

◆ grid_library_print_stats()

subroutine, public grid_api::grid_library_print_stats ( type(mp_comm_type)  mpi_comm,
integer, intent(in)  output_unit 
)

Print grid library statistics.

Parameters
mpi_comm...
output_unit...
Author
Ole Schuett

Definition at line 1191 of file grid_api.F.

Here is the call graph for this function:

Variable Documentation

◆ grid_func_ab

integer, parameter, public grid_api::grid_func_ab = 100

Definition at line 29 of file grid_api.F.

◆ grid_func_dadb

integer, parameter, public grid_api::grid_func_dadb = 200

Definition at line 30 of file grid_api.F.

◆ grid_func_adbmdab_x

integer, parameter, public grid_api::grid_func_adbmdab_x = 301

Definition at line 31 of file grid_api.F.

◆ grid_func_adbmdab_y

integer, parameter, public grid_api::grid_func_adbmdab_y = 302

Definition at line 32 of file grid_api.F.

◆ grid_func_adbmdab_z

integer, parameter, public grid_api::grid_func_adbmdab_z = 303

Definition at line 33 of file grid_api.F.

◆ grid_func_ardbmdarb_xx

integer, parameter, public grid_api::grid_func_ardbmdarb_xx = 411

Definition at line 34 of file grid_api.F.

◆ grid_func_ardbmdarb_xy

integer, parameter, public grid_api::grid_func_ardbmdarb_xy = 412

Definition at line 35 of file grid_api.F.

◆ grid_func_ardbmdarb_xz

integer, parameter, public grid_api::grid_func_ardbmdarb_xz = 413

Definition at line 36 of file grid_api.F.

◆ grid_func_ardbmdarb_yx

integer, parameter, public grid_api::grid_func_ardbmdarb_yx = 421

Definition at line 37 of file grid_api.F.

◆ grid_func_ardbmdarb_yy

integer, parameter, public grid_api::grid_func_ardbmdarb_yy = 422

Definition at line 38 of file grid_api.F.

◆ grid_func_ardbmdarb_yz

integer, parameter, public grid_api::grid_func_ardbmdarb_yz = 423

Definition at line 39 of file grid_api.F.

◆ grid_func_ardbmdarb_zx

integer, parameter, public grid_api::grid_func_ardbmdarb_zx = 431

Definition at line 40 of file grid_api.F.

◆ grid_func_ardbmdarb_zy

integer, parameter, public grid_api::grid_func_ardbmdarb_zy = 432

Definition at line 41 of file grid_api.F.

◆ grid_func_ardbmdarb_zz

integer, parameter, public grid_api::grid_func_ardbmdarb_zz = 433

Definition at line 42 of file grid_api.F.

◆ grid_func_dabpadb_x

integer, parameter, public grid_api::grid_func_dabpadb_x = 501

Definition at line 43 of file grid_api.F.

◆ grid_func_dabpadb_y

integer, parameter, public grid_api::grid_func_dabpadb_y = 502

Definition at line 44 of file grid_api.F.

◆ grid_func_dabpadb_z

integer, parameter, public grid_api::grid_func_dabpadb_z = 503

Definition at line 45 of file grid_api.F.

◆ grid_func_dx

integer, parameter, public grid_api::grid_func_dx = 601

Definition at line 46 of file grid_api.F.

◆ grid_func_dy

integer, parameter, public grid_api::grid_func_dy = 602

Definition at line 47 of file grid_api.F.

◆ grid_func_dz

integer, parameter, public grid_api::grid_func_dz = 603

Definition at line 48 of file grid_api.F.

◆ grid_func_dxdy

integer, parameter, public grid_api::grid_func_dxdy = 701

Definition at line 49 of file grid_api.F.

◆ grid_func_dydz

integer, parameter, public grid_api::grid_func_dydz = 702

Definition at line 50 of file grid_api.F.

◆ grid_func_dzdx

integer, parameter, public grid_api::grid_func_dzdx = 703

Definition at line 51 of file grid_api.F.

◆ grid_func_dxdx

integer, parameter, public grid_api::grid_func_dxdx = 801

Definition at line 52 of file grid_api.F.

◆ grid_func_dydy

integer, parameter, public grid_api::grid_func_dydy = 802

Definition at line 53 of file grid_api.F.

◆ grid_func_dzdz

integer, parameter, public grid_api::grid_func_dzdz = 803

Definition at line 54 of file grid_api.F.

◆ grid_func_dab_x

integer, parameter, public grid_api::grid_func_dab_x = 901

Definition at line 55 of file grid_api.F.

◆ grid_func_dab_y

integer, parameter, public grid_api::grid_func_dab_y = 902

Definition at line 56 of file grid_api.F.

◆ grid_func_dab_z

integer, parameter, public grid_api::grid_func_dab_z = 903

Definition at line 57 of file grid_api.F.

◆ grid_func_adb_x

integer, parameter, public grid_api::grid_func_adb_x = 904

Definition at line 58 of file grid_api.F.

◆ grid_func_adb_y

integer, parameter, public grid_api::grid_func_adb_y = 905

Definition at line 59 of file grid_api.F.

◆ grid_func_adb_z

integer, parameter, public grid_api::grid_func_adb_z = 906

Definition at line 60 of file grid_api.F.

◆ grid_func_core_x

integer, parameter, public grid_api::grid_func_core_x = 1001

Definition at line 62 of file grid_api.F.

◆ grid_func_core_y

integer, parameter, public grid_api::grid_func_core_y = 1002

Definition at line 63 of file grid_api.F.

◆ grid_func_core_z

integer, parameter, public grid_api::grid_func_core_z = 1003

Definition at line 64 of file grid_api.F.

◆ grid_backend_auto

integer, parameter, public grid_api::grid_backend_auto = 10

Definition at line 66 of file grid_api.F.

◆ grid_backend_ref

integer, parameter, public grid_api::grid_backend_ref = 11

Definition at line 67 of file grid_api.F.

◆ grid_backend_cpu

integer, parameter, public grid_api::grid_backend_cpu = 12

Definition at line 68 of file grid_api.F.

◆ grid_backend_dgemm

integer, parameter, public grid_api::grid_backend_dgemm = 13

Definition at line 69 of file grid_api.F.

◆ grid_backend_gpu

integer, parameter, public grid_api::grid_backend_gpu = 14

Definition at line 70 of file grid_api.F.

◆ grid_backend_hip

integer, parameter, public grid_api::grid_backend_hip = 15

Definition at line 71 of file grid_api.F.