Documentation for module domain_submatrix_methods

Subroutines to handle submatrices

source: domain_submatrix_methods.F
Loading...

Generic procedures:

add_submatrices
copy_submatrices
init_submatrices
multiply_submatrices
release_submatrices
set_submatrices

public Subroutines/Functions:

Constructs a DBCSR matrix from submatrices
Constructs submatrices for each ALMO domain by collecting distributed DBCSR blocks to local arrays
...
Computes the max norm of the collection of submatrices
...

Generic procedure add_submatrices

...

REAL(dp),
INTENT(in)
:: alpha × ×
INTENT(inout)
:: a ×
INTENT(inout)
:: a(:) ×
REAL(dp),
INTENT(in)
:: beta × ×
INTENT(in)
:: b ×
INTENT(in)
:: b(:) ×
CHARACTER,
INTENT(in)
:: transb × ×

Generic procedure copy_submatrices

...

INTENT(in)
:: original(:) ×
INTENT(in)
:: original ×
INTENT(inout)
:: copy(:) ×
INTENT(inout)
:: copy ×
LOGICAL,
INTENT(in)
:: copy_data × ×

Generic procedure init_submatrices

...

INTENT(inout)
:: subm ×
INTENT(inout)
:: subm(:) ×
INTENT(inout)
:: subm(:,:) ×

Generic procedure multiply_submatrices

...

CHARACTER,
INTENT(in)
:: transa × ×
CHARACTER,
INTENT(in)
:: transb × ×
REAL(dp),
INTENT(in)
:: alpha × ×
INTENT(in)
:: a ×
INTENT(in)
:: a(:) ×
INTENT(in)
:: b ×
INTENT(in)
:: b(:) ×
REAL(dp),
INTENT(in)
:: beta × ×
INTENT(inout)
:: c ×
INTENT(inout)
:: c(:) ×

Generic procedure release_submatrices

...

INTENT(inout)
:: subm(:) ×
INTENT(inout)
:: subm ×

Generic procedure set_submatrices

...

INTENT(inout)
:: submatrices(:) ×
REAL(dp),
INTENT(in)
:: scalar × ×
INTENT(inout)
:: submatrix ×

SUBROUTINEconstruct_dbcsr_from_submatrices(matrix, submatrix, distr_pattern)

Constructs a DBCSR matrix from submatrices

Arguments:
TYPE(dbcsr_type),
INTENT(inout)
:: matrix ...
INTENT(in)
:: submatrix(:) ...
TYPE(dbcsr_type),
INTENT(in)
:: distr_pattern ...

SUBROUTINEconstruct_submatrices(matrix, submatrix, distr_pattern, domain_map, node_of_domain, job_type)

Constructs submatrices for each ALMO domain by collecting distributed DBCSR blocks to local arrays

Arguments:
TYPE(dbcsr_type),
INTENT(in)
:: matrix ...
INTENT(inout)
:: submatrix(:) ...
TYPE(dbcsr_type),
INTENT(in)
:: distr_pattern ...
INTENT(in)
:: domain_map ...
INTEGER,
INTENT(in)
:: node_of_domain(:) ...
INTEGER,
INTENT(in)
:: job_type ...

SUBROUTINEcopy_submatrix_data(array, copy)

...

Arguments:
REAL(dp),
INTENT(in)
:: array(:,:) ...
INTENT(inout)
:: copy ...

SUBROUTINEmaxnorm_submatrices(submatrices, norm)

Computes the max norm of the collection of submatrices

Arguments:
INTENT(in)
:: submatrices(:) ...
REAL(dp),
INTENT(out)
:: norm ...

SUBROUTINEadd_submatrices_once(alpha, a, beta, b, transb)

...

Arguments:
REAL(dp),
INTENT(in)
:: alpha ...
INTENT(inout)
:: a ...
REAL(dp),
INTENT(in)
:: beta ...
INTENT(in)
:: b ...
CHARACTER,
INTENT(in)
:: transb ...

SUBROUTINEadd_submatrices_array(alpha, a, beta, b, transb)

...

Arguments:
REAL(dp),
INTENT(in)
:: alpha ...
INTENT(inout)
:: a(:) ...
REAL(dp),
INTENT(in)
:: beta ...
INTENT(in)
:: b(:) ...
CHARACTER,
INTENT(in)
:: transb ...

SUBROUTINEcopy_submatrix_array(original, copy, copy_data)

...

Arguments:
INTENT(in)
:: original(:) ...
INTENT(inout)
:: copy(:) ...
LOGICAL,
INTENT(in)
:: copy_data ...

SUBROUTINEcopy_submatrix(original, copy, copy_data)

...

Arguments:
INTENT(in)
:: original ...
INTENT(inout)
:: copy ...
LOGICAL,
INTENT(in)
:: copy_data ...

SUBROUTINEinit_submatrices_0d(subm)

...

Arguments:
INTENT(inout)
:: subm ...

SUBROUTINEinit_submatrices_1d(subm)

...

Arguments:
INTENT(inout)
:: subm(:) ...

SUBROUTINEinit_submatrices_2d(subm)

...

Arguments:
INTENT(inout)
:: subm(:,:) ...

SUBROUTINEmultiply_submatrices_once(transa, transb, alpha, a, b, beta, c)

...

Arguments:
CHARACTER,
INTENT(in)
:: transa ...
CHARACTER,
INTENT(in)
:: transb ...
REAL(dp),
INTENT(in)
:: alpha ...
INTENT(in)
:: a ...
INTENT(in)
:: b ...
REAL(dp),
INTENT(in)
:: beta ...
INTENT(inout)
:: c ...

SUBROUTINEmultiply_submatrices_array(transa, transb, alpha, a, b, beta, c)

...

Arguments:
CHARACTER,
INTENT(in)
:: transa ...
CHARACTER,
INTENT(in)
:: transb ...
REAL(dp),
INTENT(in)
:: alpha ...
INTENT(in)
:: a(:) ...
INTENT(in)
:: b(:) ...
REAL(dp),
INTENT(in)
:: beta ...
INTENT(inout)
:: c(:) ...

SUBROUTINErelease_submatrix_array(subm)

...

Arguments:
INTENT(inout)
:: subm(:) ...

SUBROUTINErelease_submatrix(subm)

...

Arguments:
INTENT(inout)
:: subm ...

SUBROUTINEset_submatrix_array(submatrices, scalar)

...

Arguments:
INTENT(inout)
:: submatrices(:) ...
REAL(dp),
INTENT(in)
:: scalar ...

SUBROUTINEset_submatrix(submatrix, scalar)

...

Arguments:
INTENT(inout)
:: submatrix ...
REAL(dp),
INTENT(in)
:: scalar ...