(git:cd590b0)
Loading...
Searching...
No Matches
qs_tensors_types Module Reference

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

Data Types

type  distribution_3d_type
type  neighbor_list_3c_type
type  neighbor_list_3c_iterator_type

Functions/Subroutines

subroutine, public distribution_3d_create (dist_3d, dist1, dist2, dist3, nkind, particle_set, mp_comm_3d, own_comm)
 Create a 3d distribution.
subroutine, public distribution_3d_destroy (dist)
 Destroy a 3d distribution.
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.
subroutine, public contiguous_tensor_dist (nel, nbin, weights, limits_start, limits_end, dist)
 contiguous distribution of weighted elements
subroutine, public create_3c_tensor (t3c, dist_1, dist_2, dist_3, pgrid, sizes_1, sizes_2, sizes_3, map1, map2, name)
 ...
subroutine, public create_2c_tensor (t2c, dist_1, dist_2, pgrid, sizes_1, sizes_2, order, name)
 ...
subroutine, public split_block_sizes (blk_sizes, blk_sizes_split, max_size)
 ...
subroutine, public pgf_block_sizes (atomic_kind_set, basis, min_blk_size, pgf_blk_sizes)
 ...
subroutine, public create_tensor_batches (sizes, nbatches, starts_array, ends_array, starts_array_block, ends_array_block)
 ...

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:

◆ 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.