(git:6a2e663)
qs_tensors_types Module Reference

Utility methods to build 3-center integral tensors of various types. More...

Functions/Subroutines

subroutine, public distribution_3d_create (dist_3d, dist1, dist2, dist3, nkind, particle_set, mp_comm_3d, own_comm)
 Create a 3d distribution. More...
 
subroutine, public distribution_3d_destroy (dist)
 Destroy a 3d distribution. More...
 
subroutine, public distribution_2d_create (dist_2d, dist1, dist2, nkind, particle_set, mp_comm_2d, blacs_env_ext)
 Create a 2d distribution. This mainly wraps distribution_2d_create for consistency with distribution_3d_create. More...
 
subroutine, public contiguous_tensor_dist (nel, nbin, weights, limits_start, limits_end, dist)
 contiguous distribution of weighted elements More...
 
subroutine, public create_3c_tensor (t3c, dist_1, dist_2, dist_3, pgrid, sizes_1, sizes_2, sizes_3, map1, map2, name)
 ... More...
 
subroutine, public create_2c_tensor (t2c, dist_1, dist_2, pgrid, sizes_1, sizes_2, order, name)
 ... More...
 
subroutine, public split_block_sizes (blk_sizes, blk_sizes_split, max_size)
 ... More...
 
subroutine, public pgf_block_sizes (atomic_kind_set, basis, min_blk_size, pgf_blk_sizes)
 ... More...
 
subroutine, public create_tensor_batches (sizes, nbatches, starts_array, ends_array, starts_array_block, ends_array_block)
 ... More...
 

Variables

integer, parameter, public symmetric_none = 0
 
integer, parameter, public symmetric_ij = 1
 
integer, parameter, public symmetric_jk = 2
 
integer, parameter, public symmetrik_ik = 3
 
integer, parameter, public symmetric_ijk = 4
 
integer, parameter, public default_block_size = 64
 

Detailed Description

Utility methods to build 3-center integral tensors of various types.

Function/Subroutine Documentation

◆ distribution_3d_create()

subroutine, public qs_tensors_types::distribution_3d_create ( type(distribution_3d_type)  dist_3d,
integer, dimension(:), intent(in)  dist1,
integer, dimension(:), intent(in)  dist2,
integer, dimension(:), intent(in)  dist3,
integer, intent(in)  nkind,
type(particle_type), dimension(:), pointer  particle_set,
type(mp_cart_type), intent(in)  mp_comm_3d,
logical, intent(in), optional  own_comm 
)

Create a 3d distribution.

Parameters
dist_3d3d distribution object
dist1distribution vector along 1st process grid dimension
dist2distribution vector along 2nd process grid dimension
dist3distribution vector along 3rd process grid dimension
nkind...
particle_set...
mp_comm_3dMPI communicator with a 3d cartesian topology
own_commWhether mp_comm_3d should be owned by dist_3d (default false)

Definition at line 90 of file qs_tensors_types.F.

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

◆ distribution_3d_destroy()

subroutine, public qs_tensors_types::distribution_3d_destroy ( type(distribution_3d_type)  dist)

Destroy a 3d distribution.

Parameters
dist...

Definition at line 134 of file qs_tensors_types.F.

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

◆ distribution_2d_create()

subroutine, public qs_tensors_types::distribution_2d_create ( type(distribution_2d_type), pointer  dist_2d,
integer, dimension(:), intent(in)  dist1,
integer, dimension(:), intent(in)  dist2,
integer, intent(in)  nkind,
type(particle_type), dimension(:), pointer  particle_set,
type(mp_cart_type), intent(in), optional  mp_comm_2d,
type(cp_blacs_env_type), optional, pointer  blacs_env_ext 
)

Create a 2d distribution. This mainly wraps distribution_2d_create for consistency with distribution_3d_create.

Parameters
dist_2d2d distribution object
dist1distribution vector along 1st process grid dimension
dist2distribution vector along 2nd process grid dimension
nkind...
particle_set...
mp_comm_2dMPI communicator with a 3d cartesian topology
blacs_env_ext...

Definition at line 164 of file qs_tensors_types.F.

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

◆ contiguous_tensor_dist()

subroutine, public qs_tensors_types::contiguous_tensor_dist ( integer, intent(in)  nel,
integer, intent(inout)  nbin,
integer, dimension(nel), intent(in)  weights,
integer, dimension(:), intent(out), optional, allocatable  limits_start,
integer, dimension(:), intent(out), optional, allocatable  limits_end,
integer, dimension(nel), intent(out), optional  dist 
)

contiguous distribution of weighted elements

Parameters
nel...
nbin...
weights...
limits_start...
limits_end...
dist...

Definition at line 265 of file qs_tensors_types.F.

Here is the caller graph for this function:

◆ create_3c_tensor()

subroutine, public qs_tensors_types::create_3c_tensor ( type(dbt_type), intent(out)  t3c,
integer, dimension(:), intent(out), allocatable  dist_1,
integer, dimension(:), intent(out), allocatable  dist_2,
integer, dimension(:), intent(out), allocatable  dist_3,
type(dbt_pgrid_type), intent(in)  pgrid,
integer, dimension(:), intent(in)  sizes_1,
integer, dimension(:), intent(in)  sizes_2,
integer, dimension(:), intent(in)  sizes_3,
integer, dimension(:), intent(in)  map1,
integer, dimension(:), intent(in)  map2,
character(len=*), intent(in)  name 
)

...

Parameters
t3cCreate 3-center tensor with load balanced default distribution.
dist_1...
dist_2...
dist_3...
pgrid...
sizes_1...
sizes_2...
sizes_3...
map1...
map2...
name...

Definition at line 334 of file qs_tensors_types.F.

Here is the caller graph for this function:

◆ create_2c_tensor()

subroutine, public qs_tensors_types::create_2c_tensor ( type(dbt_type), intent(out)  t2c,
integer, dimension(:), intent(out), allocatable  dist_1,
integer, dimension(:), intent(out), allocatable  dist_2,
type(dbt_pgrid_type), intent(in)  pgrid,
integer, dimension(:), intent(in)  sizes_1,
integer, dimension(:), intent(in)  sizes_2,
integer, dimension(:), intent(in), optional  order,
character(len=*), intent(in)  name 
)

...

Parameters
t2c...
dist_1...
dist_2...
pgrid...
sizes_1...
sizes_2...
order...
name...

Definition at line 381 of file qs_tensors_types.F.

Here is the caller graph for this function:

◆ split_block_sizes()

subroutine, public qs_tensors_types::split_block_sizes ( integer, dimension(:), intent(in)  blk_sizes,
integer, dimension(:), intent(out), allocatable  blk_sizes_split,
integer, intent(in)  max_size 
)

...

Parameters
blk_sizes...
blk_sizes_split...
max_size...

Definition at line 427 of file qs_tensors_types.F.

Here is the caller graph for this function:

◆ pgf_block_sizes()

subroutine, public qs_tensors_types::pgf_block_sizes ( type(atomic_kind_type), dimension(:), pointer  atomic_kind_set,
type(gto_basis_set_p_type), dimension(:), intent(in)  basis,
integer, intent(in)  min_blk_size,
integer, dimension(:), intent(out), allocatable  pgf_blk_sizes 
)

...

Parameters
atomic_kind_set...
basis...
min_blk_size...
pgf_blk_sizes...

Definition at line 463 of file qs_tensors_types.F.

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

◆ create_tensor_batches()

subroutine, public qs_tensors_types::create_tensor_batches ( integer, dimension(:), intent(in)  sizes,
integer, intent(inout)  nbatches,
integer, dimension(:), intent(out), allocatable  starts_array,
integer, dimension(:), intent(out), allocatable  ends_array,
integer, dimension(:), intent(out), allocatable  starts_array_block,
integer, dimension(:), intent(out), allocatable  ends_array_block 
)

...

Parameters
sizes...
nbatches...
starts_array...
ends_array...
starts_array_block...
ends_array_block...

Definition at line 520 of file qs_tensors_types.F.

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

Variable Documentation

◆ symmetric_none

integer, parameter, public qs_tensors_types::symmetric_none = 0

Definition at line 52 of file qs_tensors_types.F.

◆ symmetric_ij

integer, parameter, public qs_tensors_types::symmetric_ij = 1

Definition at line 52 of file qs_tensors_types.F.

◆ symmetric_jk

integer, parameter, public qs_tensors_types::symmetric_jk = 2

Definition at line 52 of file qs_tensors_types.F.

◆ symmetrik_ik

integer, parameter, public qs_tensors_types::symmetrik_ik = 3

Definition at line 52 of file qs_tensors_types.F.

◆ symmetric_ijk

integer, parameter, public qs_tensors_types::symmetric_ijk = 4

Definition at line 52 of file qs_tensors_types.F.

◆ default_block_size

integer, parameter, public qs_tensors_types::default_block_size = 64

Definition at line 54 of file qs_tensors_types.F.