![]() |
(git:1e0ab71)
|
Utility method to build 3-center integrals for small cell GW. More...
Data Types | |
| type | gw_3c_ctx_type |
| Shared read-only context for repeated 3-center integral block builds: screening parameters, basis maxima, contracted sphi tables, and the one-time gamma / truncated-Coulomb table initializations. Create and release OUTSIDE any OMP parallel region; creation is MPI-collective when the potential is truncated. More... | |
| type | gw_3c_ws_type |
| Per-thread workspace for 3-center integral block builds: libint object + contraction buffers. Each thread creates its own (inside the parallel region is fine). More... | |
Functions/Subroutines | |
| subroutine, public | gw_3c_ctx_create (ctx, qs_env, potential_parameter, basis_j, basis_k, basis_i) |
| Builds the shared 3c-integral context: screening radii, basis maxima, contracted sphi tables, and the one-time gamma / truncated-Coulomb table initializations. | |
| subroutine, public | gw_3c_ctx_release (ctx) |
| Releases the shared 3c-integral context. | |
| subroutine, public | gw_3c_ws_create (ws, ctx) |
| Creates a per-thread 3c workspace: libint object + LIBXSMM contraction buffers. | |
| subroutine, public | gw_3c_ws_release (ws) |
| Releases a per-thread 3c workspace. | |
| subroutine, public | build_3c_integral_block_ctx (int_3c, ctx, ws, atom_j, atom_k, atom_i, cell_j, cell_k, cell_i, j_offset, k_offset, i_offset, screened) |
| Computes the 3c integral block (mu(atom_j) nu(atom_k) | P(atom_i)) for ONE atom triple, accumulating into the caller-zeroed int_3c at the given block offsets. Thread-safe: reads the frozen ctx + read-only module tables, mutates only its arguments and the per-thread ws. | |
| subroutine, public | build_3c_integral_block (int_3c, qs_env, potential_parameter, basis_j, basis_k, basis_i, cell_j, cell_k, cell_i, atom_j, atom_k, atom_i, j_bf_start_from_atom, k_bf_start_from_atom, i_bf_start_from_atom) |
| ... | |
Utility method to build 3-center integrals for small cell GW.
| subroutine, public gw_integrals::gw_3c_ctx_create | ( | type(gw_3c_ctx_type), intent(out) | ctx, |
| type(qs_environment_type), pointer | qs_env, | ||
| type(libint_potential_type), intent(in) | potential_parameter, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_j, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_k, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_i | ||
| ) |
Builds the shared 3c-integral context: screening radii, basis maxima, contracted sphi tables, and the one-time gamma / truncated-Coulomb table initializations.
| ctx | ... |
| qs_env | ... |
| potential_parameter | ... |
| basis_j | ... |
| basis_k | ... |
| basis_i | ... |
Definition at line 106 of file gw_integrals.F.
| subroutine, public gw_integrals::gw_3c_ctx_release | ( | type(gw_3c_ctx_type), intent(inout) | ctx | ) |
Releases the shared 3c-integral context.
| ctx | ... |
Definition at line 231 of file gw_integrals.F.
| subroutine, public gw_integrals::gw_3c_ws_create | ( | type(gw_3c_ws_type), intent(out) | ws, |
| type(gw_3c_ctx_type), intent(in) | ctx | ||
| ) |
Creates a per-thread 3c workspace: libint object + LIBXSMM contraction buffers.
| ws | ... |
| ctx | ... |
Definition at line 258 of file gw_integrals.F.
| subroutine, public gw_integrals::gw_3c_ws_release | ( | type(gw_3c_ws_type), intent(inout) | ws | ) |
Releases a per-thread 3c workspace.
| ws | ... |
Definition at line 274 of file gw_integrals.F.
| subroutine, public gw_integrals::build_3c_integral_block_ctx | ( | real(kind=dp), dimension(:, :, :) | int_3c, |
| type(gw_3c_ctx_type), intent(in) | ctx, | ||
| type(gw_3c_ws_type), intent(inout) | ws, | ||
| integer, intent(in) | atom_j, | ||
| integer, intent(in) | atom_k, | ||
| integer, intent(in) | atom_i, | ||
| integer, dimension(3), intent(in), optional | cell_j, | ||
| integer, dimension(3), intent(in), optional | cell_k, | ||
| integer, dimension(3), intent(in), optional | cell_i, | ||
| integer, intent(in), optional | j_offset, | ||
| integer, intent(in), optional | k_offset, | ||
| integer, intent(in), optional | i_offset, | ||
| logical, intent(out), optional | screened | ||
| ) |
Computes the 3c integral block (mu(atom_j) nu(atom_k) | P(atom_i)) for ONE atom triple, accumulating into the caller-zeroed int_3c at the given block offsets. Thread-safe: reads the frozen ctx + read-only module tables, mutates only its arguments and the per-thread ws.
| int_3c | pre-zeroed target; the triple's contribution is accumulated in place |
| ctx | shared context from gw_3c_ctx_create |
| ws | per-thread workspace from gw_3c_ws_create |
| atom_j | ... |
| atom_k | ... |
| atom_i | ... |
| cell_j | ... |
| cell_k | ... |
| cell_i | ... |
| j_offset | block offset of atom_j's first sgf in int_3c dim 1 (default 0) |
| k_offset | block offset of atom_k's first sgf in int_3c dim 2 (default 0) |
| i_offset | block offset of atom_i's first RI sgf in int_3c dim 3 (default 0) |
| screened | .TRUE. if the kind-radius screens killed the whole triple (int_3c untouched) |
Definition at line 302 of file gw_integrals.F.
| subroutine, public gw_integrals::build_3c_integral_block | ( | real(kind=dp), dimension(:, :, :) | int_3c, |
| type(qs_environment_type), pointer | qs_env, | ||
| type(libint_potential_type), intent(in) | potential_parameter, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_j, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_k, | ||
| type(gto_basis_set_p_type), dimension(:) | basis_i, | ||
| integer, dimension(3), intent(in), optional | cell_j, | ||
| integer, dimension(3), intent(in), optional | cell_k, | ||
| integer, dimension(3), intent(in), optional | cell_i, | ||
| integer, intent(in), optional | atom_j, | ||
| integer, intent(in), optional | atom_k, | ||
| integer, intent(in), optional | atom_i, | ||
| integer, dimension(:), optional | j_bf_start_from_atom, | ||
| integer, dimension(:), optional | k_bf_start_from_atom, | ||
| integer, dimension(:), optional | i_bf_start_from_atom | ||
| ) |
...
| int_3c | ... |
| qs_env | ... |
| potential_parameter | ... |
| basis_j | ... |
| basis_k | ... |
| basis_i | ... |
| cell_j | ... |
| cell_k | ... |
| cell_i | ... |
| atom_j | ... |
| atom_k | ... |
| atom_i | ... |
| j_bf_start_from_atom | ... |
| k_bf_start_from_atom | ... |
| i_bf_start_from_atom | ... |
Definition at line 456 of file gw_integrals.F.