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

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

Detailed Description

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

Function/Subroutine Documentation

◆ gw_3c_ctx_create()

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.

Parameters
ctx...
qs_env...
potential_parameter...
basis_j...
basis_k...
basis_i...

Definition at line 106 of file gw_integrals.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gw_3c_ctx_release()

subroutine, public gw_integrals::gw_3c_ctx_release ( type(gw_3c_ctx_type), intent(inout)  ctx)

Releases the shared 3c-integral context.

Parameters
ctx...

Definition at line 231 of file gw_integrals.F.

Here is the caller graph for this function:

◆ gw_3c_ws_create()

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.

Parameters
ws...
ctx...

Definition at line 258 of file gw_integrals.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gw_3c_ws_release()

subroutine, public gw_integrals::gw_3c_ws_release ( type(gw_3c_ws_type), intent(inout)  ws)

Releases a per-thread 3c workspace.

Parameters
ws...

Definition at line 274 of file gw_integrals.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_3c_integral_block_ctx()

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.

Parameters
int_3cpre-zeroed target; the triple's contribution is accumulated in place
ctxshared context from gw_3c_ctx_create
wsper-thread workspace from gw_3c_ws_create
atom_j...
atom_k...
atom_i...
cell_j...
cell_k...
cell_i...
j_offsetblock offset of atom_j's first sgf in int_3c dim 1 (default 0)
k_offsetblock offset of atom_k's first sgf in int_3c dim 2 (default 0)
i_offsetblock 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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_3c_integral_block()

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 
)

...

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

Here is the call graph for this function:
Here is the caller graph for this function: