TABLE OF CONTENTS
- ABINIT/defs_rectypes
- defs_rectypes/ recparall_type
- defs_rectypes/metricrec_type
- defs_rectypes/nlpsprec_type
- defs_rectypes/recGPU_type
- defs_rectypes/recursion_type
- defs_rectypes/vec_int
ABINIT/defs_rectypes [ Modules ]
NAME
defs_rectypes
FUNCTION
This module contains definitions of all structured datatype for recursion
COPYRIGHT
Copyright (C) 2001-2024 ABINIT group (MM) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
SOURCE
17 #if defined HAVE_CONFIG_H 18 #include "config.h" 19 #endif 20 21 #include "abi_common.h" 22 23 24 module defs_rectypes 25 26 use defs_basis 27 use m_abicore 28 use defs_abitypes, only : MPI_type 29 use m_pawfgr, only : pawfgr_type 30 31 implicit none
defs_rectypes/ recparall_type [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
recparall_type
FUNCTION
This structured datatype for distribution of work in recursion
SOURCE
136 type,public :: recparall_type 137 138 !--Variables for parallelization in recursion 139 integer :: min_pt 140 integer :: max_pt 141 integer :: ntranche 142 integer :: npt !--Number of points to calculate for a proc 143 144 ! Integer arrays 145 integer,allocatable :: displs(:) !--For mpi 146 integer,allocatable :: vcount(:) 147 148 ! Structured datatypes 149 type(vec_int) :: pt0 !--Initial point to calculate 150 type(vec_int) :: pt1 !--Final point to calculate 151 152 end type recparall_type 153 154 !Structures
defs_rectypes/metricrec_type [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
metricrec_type
FUNCTION
This structured datatype used in recursion_type containing information concerning the infenitesimal metrics
SOURCE
60 type,public :: metricrec_type 61 ! Real scalars 62 real(dp) :: ucvol !--Infinitesimal volume 63 ! Integer arrays 64 integer,allocatable :: gcart(:,:) 65 ! Real (real(dp)) arrays 66 real(dp) :: tr(3) !--Trace of the metrics: (grid step) 67 real(dp) :: rmet(3,3) !--Infinitesimal metrics in recursion 68 69 end type metricrec_type
defs_rectypes/nlpsprec_type [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
nlpsprec_type
FUNCTION
This structured datatype used in recursion_type containing information concerning psp
SOURCE
85 type,public :: nlpsprec_type! Integer scalars 86 87 integer :: lmnmax 88 ! in recursion, it contains the max counting-index for lmn, it 89 ! corresponds to the ubound of the second index of indlmn 90 91 integer :: intlen !nl_ngfft is the maximum, on all psps, of the 92 ! interaction length of non-local potential (in grid step). 93 94 integer :: npsp ! Number of types of pseudopotentials 95 96 logical :: nlpsp !calculate the non-localc pspeudo part in recursion 97 98 ! Integer arrays 99 integer,allocatable :: pspinfo(:,:) !--for any typat: (momang,typat)=nproj 100 integer,allocatable :: indlmn(:,:,:) 101 ! indlmn(6,lmnmax,ntypat) 102 ! For each type of psp, 103 ! array giving l,m,n,lm,ln,spin for i=lmn (if useylm=1) 104 105 106 ! Real (real(dp)) arrays 107 real(dp),allocatable :: radii(:,:) !--Local radii of nl psp 108 ! part radii(l+1,psp) 109 110 real(dp),allocatable :: projec(:,:,:) !--p(r,lmn,typat), is the 111 !product of Y_lm(r)*nlproj_ln(r) calculated on the grid for any psps. 112 113 real(dp),allocatable :: mat_exp_psp_nl(:,:,:,:) !--Matrix of exponential 114 ! of non-local psp 115 ! mat_exp_psp_nl(nproj,nproj,l+1,psp) 116 117 real(dp),allocatable :: eival(:,:,:) !--Matrix of exponential(eigenvalues) 118 real(dp),allocatable :: eivec(:,:,:,:) !--Matrix of exponential(eigenvectors) 119 120 end type nlpsprec_type
defs_rectypes/recGPU_type [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
recGPU_type
FUNCTION
This structured datatype for recursion with GPU
SOURCE
167 type,public :: recGPU_type 168 169 integer :: nptrec !--number of points for recursion on GPUon 170 !any devices (supposing that all devices are the same type) 171 172 integer,pointer :: map(:) !--The map of devices GPU with respect to 173 ! cpu (-1 if there are not gpu) 174 175 ! Structured datatypes 176 type(recparall_type) :: par !--For distribution of work on procs 177 178 end type recGPU_type 179 180 !Structures
defs_rectypes/recursion_type [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
recursion_type
FUNCTION
This structured datatype contains some variable used in the recursion
SOURCE
193 type,public :: recursion_type 194 195 ! WARNING : if you modify this datatype, please check whether there might be creation/destruction/copy routines, 196 ! declared in another part of ABINIT, that might need to take into account your modification. 197 198 ! Integer scalar 199 200 201 integer :: quitrec !--To quit by recursion 202 203 integer :: min_nrec !--Minimal number of recursions 204 205 integer :: nfftrec !--Recursion nfft 206 207 integer :: ngpu !--total number of GPUs 208 209 integer :: gpudevice !--it corresponds to the GPU-device setted for this proc 210 !if negative: no GPU-device is associated 211 212 integer :: load !--if egual to 0 (default), load on proc-gpu is 213 !homogeneous and %par is egual to %GPU%par (or %GPU is not affected) 214 !otherwise load=1 215 integer :: tp !--topology of the machine: 216 !0: 1 cpu; 217 !1: n cpu; 218 !2: 1 cpu 1 gpu; 219 !3: n cpu n gpu 220 !4: n cpu > m gpu; 221 !5: n cpu < m gpu (not implemented) 222 223 logical :: debug !--Debugging variable 224 logical :: tronc !--True if troncation (ngfftrec/=ngfft) is used 225 226 227 ! Integer arrays 228 integer :: ngfftrec(18) !--Recursion ngfft 229 ! Real (real(dp)) scalar 230 real(dp) :: efermi 231 232 real(dp),allocatable :: ZT_p(:,:) !--Is the Fourier transform of the 233 ! green kernel 234 235 ! Structured datatypes 236 type(recparall_type) :: par !--For distribution of work on procs 237 type(pawfgr_type) :: pawfgr !--For double grid system 238 type(MPI_type),pointer :: mpi !--For recursion mpi 239 type(nlpsprec_type) :: nl !--For nlpsp 240 type(metricrec_type) :: inf !--For metrics 241 #ifdef HAVE_GPU_CUDA 242 type(recGPU_type) :: GPU !--information concerning cuda 243 #endif 244 end type recursion_type 245 246 end module defs_rectypes
defs_rectypes/vec_int [ Types ]
[ Top ] [ defs_rectypes ] [ Types ]
NAME
vec_int
FUNCTION
This structured datatype contains 3d vector of indexes
SOURCE
43 type,public :: vec_int 44 integer :: x,y,z 45 end type vec_int