(git:1e0ab71)
Loading...
Searching...
No Matches
gw_integrals.F File Reference

Go to the source code of this file.

Data Types

type  gw_integrals::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_integrals::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...
 

Modules

module  gw_integrals
 Utility method to build 3-center integrals for small cell GW.
 

Functions/Subroutines

subroutine, public gw_integrals::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_integrals::gw_3c_ctx_release (ctx)
 Releases the shared 3c-integral context.
 
subroutine, public gw_integrals::gw_3c_ws_create (ws, ctx)
 Creates a per-thread 3c workspace: libint object + LIBXSMM contraction buffers.
 
subroutine, public gw_integrals::gw_3c_ws_release (ws)
 Releases a per-thread 3c workspace.
 
subroutine, public gw_integrals::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 gw_integrals::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)
 ...