Documentation for module dbcsr_tensor

DBCSR tensor framework for block-sparse tensor contraction.

source: dbcsr_tensor.F
Loading...

Forwarded symbols:

dbcsr_t_get_block
dbcsr_tensor_block::dbcsr_t_get_block
...
dbcsr_t_iterator_blocks_left
dbcsr_tensor_block::dbcsr_t_iterator_blocks_left
Generalization of dbcsr_iterator_blocks_left for tensors.
dbcsr_t_iterator_next_block
dbcsr_tensor_block::dbcsr_t_iterator_next_block
iterate over nd blocks of an nd rank tensor, index only (blocks must be retrieved by calling dbcsr_t_get_block on tensor).
dbcsr_t_iterator_start
dbcsr_tensor_block::dbcsr_t_iterator_start
Generalization of dbcsr_iterator_start for tensors.
dbcsr_t_iterator_stop
dbcsr_tensor_block::dbcsr_t_iterator_stop
Generalization of dbcsr_iterator_stop for tensors.
dbcsr_t_iterator_type
dbcsr_tensor_block::dbcsr_t_iterator_type
...
dbcsr_t_put_block
dbcsr_tensor_block::dbcsr_t_put_block
...
dbcsr_t_reserve_blocks
dbcsr_tensor_block::dbcsr_t_reserve_blocks
...
dbcsr_t_inverse_order
dbcsr_tensor_index::dbcsr_t_inverse_order
Invert order
dbcsr_t_get_stored_coordinates
dbcsr_tensor_types::dbcsr_t_get_stored_coordinates
Generalization of dbcsr_get_stored_coordinates for tensors.

Generic procedures:

dbcsr_t_dims
dbcsr_t_ndims

public Subroutines/Functions:

Contract tensors by multiplying matrix representations.
Copy tensor data. Redistributes tensor data according to distributions of target and source tensor. Permutes tensor index according to `order` argument (if present).

Generic procedure dbcsr_t_dims

tensor dimensions

INTENT(in)
:: tensor ×
INTEGER,
INTENT(out)
:: dims(ndims_tensor(tensor)) ×

Generic procedure dbcsr_t_ndims

tensor rank

INTENT(in)
:: tensor ×

SUBROUTINEdbcsr_t_contract(tensor_1, tensor_2, tensor_3, contract_1, notcontract_1, contract_2, notcontract_2, map_1, map_2)

Contract tensors by multiplying matrix representations.

Arguments:
INTENT(in)
:: tensor_1 first tensor (in)
INTENT(in)
:: tensor_2 second tensor (in)
INTENT(inout)
:: tensor_3 contracted tensor (out)
INTEGER,
INTENT(in)
:: contract_1(:) indices of tensor_1 to contract
INTEGER,
INTENT(in)
:: notcontract_1(:) indices of tensor_1 not to contract
INTEGER,
INTENT(in)
:: contract_2(:) indices of tensor_2 to contract (1:1 with contract_1)
INTEGER,
INTENT(in)
:: notcontract_2(:) indices of tensor_2 not to contract
INTEGER,
INTENT(in)
:: map_1(:) which indices of tensor_3 map to non-contracted indices of tensor_1 (1:1 with notcontract_1)
INTEGER,
INTENT(in)
:: map_2(:) which indices of tensor_3 map to non-contracted indices of tensor_2 (1:1 with notcontract_2)

SUBROUTINEdbcsr_t_copy(tensor_in, tensor_out, order)

Copy tensor data. Redistributes tensor data according to distributions of target and source tensor. Permutes tensor index according to `order` argument (if present).

Arguments:
INTENT(inout)
:: tensor_in Source
INTENT(inout)
:: tensor_out Target
INTEGER,
INTENT(in),
OPTIONAL
:: order(ndims_tensor(tensor_in)) Permutation of target tensor index. Exact same convention as order argument of RESHAPE intrinsic