TABLE OF CONTENTS


ABINIT/defs_wvltypes [ Modules ]

[ Top ] [ Modules ]

NAME

 defs_wvltypes

FUNCTION

 This module contains definitions of all structured datatypes for the
 wavelet part of the ABINIT package.

 List of datatypes :
 * wvl_projectors_type : structure to store projectors for wavelets calculations.
 * wvl_wf_type : structure to store wavefunctions for wavelets calculations.
 * wvl_data : container for all required wavelets data.

COPYRIGHT

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

TODO

SOURCE

24 #if defined HAVE_CONFIG_H
25 #include "config.h"
26 #endif
27 
28 #include "abi_common.h"
29 
30 
31 module defs_wvltypes
32 
33  use defs_basis
34  use m_abicore
35  use m_errors
36 
37 #if defined HAVE_BIGDFT
38  use BigDFT_API, only : atoms_data, locreg_descriptors, local_zone_descriptors, &
39       & DFT_PSP_projectors, GPU_pointers, rho_descriptors, &
40       & DFT_local_fields, DFT_wavefunction, energy_terms, &
41       & rholoc_objects,gaussian_basis,paw_objects,xc_info,coulomb_operator, &
42       & nullify_gaussian_basis,nullify_local_zone_descriptors,&
43       & nullify_orbitals_data,comms_cubic,comms_linear_null, &
44       & nullify_diis_objects,p2pComms_null,&
45       & nullify_GPU_pointers,nullify_locreg_descriptors,&
46       & nullify_atoms_data,nullify_rholoc_objects,nullify_paw_objects,&
47       & nullify_DFT_local_fields, DFT_PSP_projectors_null
48 
49 #endif
50 
51  implicit none

ABINIT/nullify_wvl_data [ Functions ]

[ Top ] [ Functions ]

NAME

  nullify_wvl_data

FUNCTION

  Nullify all wvl pointers

COPYRIGHT

  Copyright (C) 2013-2018 ABINIT group (T. Rangel)
  This file is distributed under the terms of the
  GNU General Public License, see ~abinit/COPYING
  or http://www.gnu.org/copyleft/gpl.txt .

INPUTS

  argin(sizein)=description

OUTPUT

  argout(sizeout)=description

SIDE EFFECTS

NOTES

PARENTS

      driver

CHILDREN

      nullify_atoms_data,nullify_dft_local_fields,nullify_diis_objects
      nullify_gaussian_basis,nullify_gpu_pointers
      nullify_local_zone_descriptors,nullify_locreg_descriptors
      nullify_orbitals_data,nullify_paw_objects,nullify_rholoc_objects

SOURCE

262 subroutine nullify_wvl_data(wvl)
263 
264 
265 !This section has been created automatically by the script Abilint (TD).
266 !Do not modify the following lines by hand.
267 #undef ABI_FUNC
268 #define ABI_FUNC 'nullify_wvl_data'
269 !End of the abilint section
270 
271  implicit none
272 
273 !Arguments ------------------------------------
274  type(wvl_data) , intent(inout)  :: wvl
275 
276 ! *************************************************************************
277 
278 #if defined HAVE_BIGDFT
279 
280  DBG_ENTER("COLL")
281 
282 !1)   wvl_projectors_type: projectors
283  wvl%projectors%nlpsp=DFT_PSP_projectors_null()
284 
285 !2)   wvl_wf_type: wfs
286 !2.1) DFT_wavefunction: ks
287  nullify(wvl%wfs%ks%psi)
288  nullify(wvl%wfs%ks%hpsi)
289  nullify(wvl%wfs%ks%psit)
290  nullify(wvl%wfs%ks%spsi)
291  nullify(wvl%wfs%ks%gaucoeffs)
292  nullify(wvl%wfs%ks%confdatarr)
293  nullify(wvl%wfs%ks%oldpsis)
294  nullify(wvl%wfs%ks%coeff)
295 !2.1.1) gaussian_basis: gbd
296  call nullify_gaussian_basis(wvl%wfs%ks%gbd)
297 !2.1.2) local_zone_descriptors: Lzd
298  call nullify_local_zone_descriptors(wvl%wfs%ks%Lzd)
299 !2.1.3) orbitals_data: orbs
300  call nullify_orbitals_data(wvl%wfs%ks%orbs)
301 !2.1.4) communications_arrays: comms
302  wvl%wfs%ks%comms=comms_cubic_null()
303 !2.1.5) diis_objects: diis
304  call nullify_diis_objects(wvl%wfs%ks%diis)
305 !2.1.6) p2pComms: comgp
306  wvl%wfs%ks%comgp = p2pComms_null()
307 !2.1.7) collective_comms: collcom
308  wvl%wfs%ks%collcom = comms_linear_null()
309 !2.1.8) collective_comms: collcom_sr
310  wvl%wfs%ks%collcom_sr = comms_linear_null()
311 
312 !2.2) GPU_pointers: GPU
313  call nullify_GPU_pointers(wvl%wfs%GPU)
314  wvl%wfs%GPU%OCLconv = .false.
315 
316 !3) wvl_internal_type: descr
317 !3.1) locreg_descriptors: Glr
318  call nullify_locreg_descriptors(wvl%descr%Glr)
319 !3.2) atoms_data: atoms
320  call nullify_atoms_data(wvl%descr%atoms)
321 !3.3) rholoc_objects: rholoc
322  call nullify_rholoc_objects(wvl%descr%rholoc)
323 !3.4) paw_objects: paw
324  call nullify_paw_objects(wvl%descr%paw)
325 
326 !4) wvl_denspot_type: den
327 !4.1) DFT_local_fields: denspot
328  call nullify_DFT_local_fields(wvl%den%denspot)
329 
330 !5) wvl_energy_terms: e
331 !there are no pointers here
332 
333  DBG_EXIT("COLL")
334 
335  contains

defs_wvltypes/coulomb_operator [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 coulomb_operator

FUNCTION

 This type contains the
 BigDFT information for kernels

SOURCE

193 type coulomb_operator
194    !this is a fake type when not compiled with BigDFT.
195    integer :: co
196 end type coulomb_operator

defs_wvltypes/wvl_data [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_data

FUNCTION

 This type is a container to limit the number of arguments in
 ABINIT, it should not contains attributes other than types
 created for wavelets.

SOURCE

211 type wvl_data
212    ! The data associated to projectors (computed from pseudo)
213    type(wvl_projectors_type) :: projectors
214    ! The data associated to the wavefunctions
215    type(wvl_wf_type) :: wfs
216    ! The pointers to internal BigDFT data structures
217    type(wvl_internal_type) :: descr
218    ! Densities and potentials
219    type(wvl_denspot_type) :: den
220    ! Energies
221    type(wvl_energy_terms) :: e
222 end type wvl_data

defs_wvltypes/wvl_denspot_type [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_denspot_type

FUNCTION

 This type contains the
 BigDFT information for
 Densities and potentials

SOURCE

154 type wvl_denspot_type
155 #if defined HAVE_BIGDFT
156    ! Densities and potentials, and related metadata, needed for their creation/application
157    type(DFT_local_fields) :: denspot
158 #endif
159    ! This is a pointer on the symmetry object present in atoms structure of BigDFT.
160    integer :: symObj
161 end type wvl_denspot_type

defs_wvltypes/wvl_energy_terms [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_energy_terms

FUNCTION

 This type contains the
 BigDFT information for energies

SOURCE

173 type wvl_energy_terms
174 #if defined HAVE_BIGDFT
175    !object for energies
176    type(energy_terms) :: energs
177 #else
178    integer :: energs
179 #endif
180 end type wvl_energy_terms

defs_wvltypes/wvl_internal_type [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_internal_type

FUNCTION

 This type is a gathering for all internal variables wavelets required. It is
 included in the datatypes strutcture.

NOTES

 If you modify this datatype, the copy, init/free routines are in wvl_utils.F90.

SOURCE

110 type wvl_internal_type
111   real(dp) :: h(3)
112   ! The hgrid values in each direction, after the application of the
113   ! boundary conditions. In free boundary conditions, the three values are equal.
114   real(dp) :: shift(3)
115   ! Shift applied by BigDFT on the atomic position (in cartesian coordinates).
116 
117   integer,allocatable :: npspcode_paw_init_guess(:)
118   ! This is for the initial guess in PAW pseudos, this
119   ! is only relevant for ABINIT and PAW
120 
121 #if defined HAVE_BIGDFT
122   type(locreg_descriptors) :: Glr
123   ! Contains the description of the global localisation region.
124 
125   type(atoms_data) :: atoms
126   ! A copy of the current dtset values.
127 
128   type(rholoc_objects) :: rholoc
129   ! Information for local density
130 
131   type(paw_objects) :: paw
132   ! Objects for PAW
133 #endif
134 
135   character(len=4) :: exctxpar
136   ! parallelisation scheme of the exact exchange operator
137   !   BC (Blocking Collective)
138   !   OP2P (Overlap Point-to-Point)
139   real(dp) :: exctxfac
140   ! Exact exchange coefficient to mix.
141 end type wvl_internal_type

defs_wvltypes/wvl_projectors_type [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_projectors_type

FUNCTION

 This type constains all physical data associated to
 projectors of a given system (Z and atomic positions).

SOURCE

63  type wvl_projectors_type
64 
65 #if defined HAVE_BIGDFT
66     type(DFT_PSP_projectors) :: nlpsp
67     !object containing the projectors as a sum of Gaussian functions
68     type(gaussian_basis),dimension(:),allocatable :: G
69 #else
70     integer :: nlpsp
71 #endif
72 
73  end type wvl_projectors_type

defs_wvltypes/wvl_wf_type [ Types ]

[ Top ] [ defs_wvltypes ] [ Types ]

NAME

 wvl_wf_type

FUNCTION

 This type constains all physical data associated to
 wavefunctions of a given system (Z and atomic positions).

SOURCE

85  type wvl_wf_type
86 #if defined HAVE_BIGDFT
87     type(DFT_wavefunction) :: ks
88 
89     ! Some GPU internals.
90     type(GPU_pointers) :: GPU
91 #else
92     ! To avoid having an empty type.
93     integer :: ks
94 #endif
95  end type wvl_wf_type

nullify_wvl_data/comms_cubic_null [ Functions ]

[ Top ] [ nullify_wvl_data ] [ Functions ]

NAME

  comms_cubic_null

FUNCTION

  Nullify comms