ABINIT/m_cplxtools [ Modules ]

This module defines helper functions to operate on complex arrays (mainly used in the GW code)

COPYRIGHT

Copyright (C) 1992-2018 ABINIT group (MG)
This file is distributed under the terms of the
GNU General Public License, see ~abinit/COPYING
or http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .

NOTES

1) The convention about names of interfaced routine is: cplx_<name>,
where <name> is equal to the name of the standard BLAS routine

m_cplxtools/cplx_addtorho_dpc [ Functions ]

nx,ny,nz=physical dimension of the FFT box.
ldx,ldy,ldz=leading dimensions of the arrays.
ndat=number of contributions to accumulate.
weight_r=weight used for the accumulation of the density in real space
ur(ldx,ldy,ldz*ndat)=wavefunctions in real space

SIDE EFFECTS

rho(ldx,ldy,ldz) = contains the input density at input,
modified in input with the contribution gived by ur.

m_cplxtools/cplx_box2gsph_dpc [ Functions ]

Transfer data from the FFT box to the G-sphere. Target DPC complex array.

INPUTS

nx,ny,nz=physical dimension of the FFT box.
ldx,ldy,ldz=Logical dimensions of the arrays.
ndat=number of data in iarrbox
npw_k=Number of planewaves in the G-sphere.
kg_k(3,npw_k)=Reduced coordinates of the G-vectoes.
iarrbox(ldx*ldy*ldz*ndat)=Complex Input arrays on the FFT box.
[rscal] = Scaling factor

m_cplxtools/cplx_box2gsph_spc [ Functions ]

Transfer data from the FFT box to the G-sphere. Target SPC complex array.

INPUTS

nx,ny,nz=physical dimension of the FFT box.
ldx,ldy,ldz=Logical dimensions of the arrays.
ndat=number of data in iarrbox
npw_k=Number of planewaves in the G-sphere.
kg_k(3,npw_k)=Reduced coordinates of the G-vectoes.
iarrbox(ldx*ldy*ldz*ndat)=Complex Input arrays on the FFT box.
[rscal] = Scaling factor

m_cplxtools/cplx_zgemm [ Functions ]

The ?gemm routines perform a matrix-matrix operation with general matrices.
The operation is defined as C := alpha*op(A)*op(B) + beta*C,
where:
op(x) is one of op(x) = x, or op(x) = x', or op(x) = conjg(x'),
alpha and beta are scalars,
A, B and C are matrices:
op(A) is an m-by-k matrix,
op(B) is a k-by-n matrix,
C is an m-by-n matrix.