Types for mixed CDFT calculations
source: mixed_cdft_types.FContainer for constraint settings to check consistency of force_evals
LOGICAL 
::  is_spherical  ...  
LOGICAL 
::  is_odd  ...  
LOGICAL, 
DIMENSION(:,:), POINTER  ::  sb  ... 
INTEGER 
::  nbecke  ...  
INTEGER 
::  max_nkinds  ...  
INTEGER, 
DIMENSION(2,3)  ::  bo  ... 
INTEGER, 
DIMENSION(:), POINTER  ::  grid_span  ... 
INTEGER, 
DIMENSION(:), POINTER  ::  spherical  ... 
INTEGER, 
DIMENSION(:), POINTER  ::  odd  ... 
INTEGER, 
DIMENSION(:,:), POINTER  ::  si  ... 
INTEGER, 
DIMENSION(:,:), POINTER  ::  rs_dims  ... 
INTEGER, 
DIMENSION(:,:), POINTER  ::  atoms  ... 
INTEGER, 
DIMENSION(:,:), POINTER  ::  npts  ... 
REAL(dp) 
::  radius  ...  
REAL(dp), 
DIMENSION(:), POINTER  ::  cutoff  ... 
REAL(dp), 
DIMENSION(:), POINTER  ::  rel_cutoff  ... 
REAL(dp), 
DIMENSION(:,:), POINTER  ::  sr  ... 
REAL(dp), 
DIMENSION(:,:), POINTER  ::  coeffs  ... 
REAL(dp), 
DIMENSION(:,:), POINTER  ::  cutoffs  ... 
REAL(dp), 
DIMENSION(:,:), POINTER  ::  radii  ... 
Main mixed CDFT control type
INTEGER 
::  sim_step  counter to keep track of the simulation step for MD  
INTEGER 
::  multiplicity  spin multiplicity  
INTEGER 
::  nconstraint  the number of constraints  
INTEGER, 
DIMENSION(:,:), ALLOCATABLE  ::  constraint_type  list of integers which determine what type of constraint should be applied to each constraint group 
INTEGER, 
POINTER, DIMENSION(:)  ::  source_list  a list of processors which will send this processor data 
INTEGER, 
POINTER, DIMENSION(:)  ::  dest_list  a list of processors which this processor will send data to 
INTEGER, 
POINTER, DIMENSION(:)  ::  recv_bo  bounds of the data which this processor will receive (is_special = .FALSE.) 
INTEGER, 
POINTER, DIMENSION(:)  ::  source_list_save  permanent copy of source_list which might get reallocated during load balancing 
INTEGER, 
POINTER, DIMENSION(:)  ::  dest_list_save  permanent copy of dest_list which might get reallocated during load balancing 
INTEGER, 
POINTER, DIMENSION(:,:)  ::  source_list_bo  bounds of the data which this processor will receive (is_special = .TRUE.) 
INTEGER, 
POINTER, DIMENSION(:,:)  ::  dest_list_bo  bounds of the data this processor will send (is_special = .TRUE.) 
INTEGER, 
POINTER, DIMENSION(:,:)  ::  source_bo_save  permanent copy of source_list_bo 
INTEGER, 
POINTER, DIMENSION(:,:)  ::  dest_bo_save  ... 
LOGICAL 
::  is_pencil  flag controlling which scheme to use for constraint replication  
LOGICAL 
::  dlb  flag to enable dynamic load balancing  
LOGICAL 
::  is_special  another flag controlling which scheme to use for constraint replication  
LOGICAL 
::  first_iteration  flag to mark the first iteration e.g. during MD to output information  
LOGICAL 
::  calculate_metric  flag which determines if the coupling reliablity metric should be computed  
LOGICAL 
::  wfn_overlap_method  ...  
LOGICAL 
::  has_unit_metric  flag to determine if the basis set has unit metric  
LOGICAL 
::  is_parallel  flag which determines if the mixed CDFT calculation is parallel or serial mode  
LOGICAL 
::  use_lowdin  flag which determines if Lowdin orthogonalization is used to compute the coupling  
LOGICAL 
::  do_ci  flag which determines if a CDFTCI calculation was requested  
LOGICAL 
::  nonortho_coupling  flag which determines if the nonorthogonal CDFT interaction energies should be printed out  
LOGICAL 
::  identical_constraints  flag which determines if the constraint definitions are identical across all CDFT states  
LOGICAL 
::  block_diagonalize  flag which determines if the CDFT Hamiltonian should be block diagonalized  
REAL(dp) 
::  eps_rho_rspace  threshold to determine when the realspace density can be considered zero  
REAL(dp) 
::  sim_dt  timestep of the MD simulation  
REAL(dp) 
::  eps_svd  value that controls which matrix inversion method to use  
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  weight  the constraint weight function 
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  cavity  the confinement cavity: the weight function is nonzero only within the cavity 
TYPE(becke_constraint_type), 
POINTER  ::  becke_control  container for becke_constraint_type 
TYPE(buffers), 
DIMENSION(:), POINTER  ::  sendbuff  buffer that holds the data to be replicated 
TYPE(cp_1d_r_p_type), 
ALLOCATABLE, DIMENSION(:,:)  ::  occupations  occupation numbers in case nonuniform occupation 
TYPE(cp_blacs_env_type), 
POINTER  ::  blacs_env  the blacs_env needed to redistribute arrays during a coupling calculation 
TYPE(cp_logger_p_type), 
DIMENSION(:), POINTER  ::  sub_logger  ... 
TYPE(mixed_cdft_result_type) 
::  results  container for mixed CDFT results  
TYPE(mixed_cdft_work_type) 
::  matrix  container for mixed CDFT work matrices  
TYPE(mixed_cdft_dlb_type), 
POINTER  ::  dlb_control  container for load balancing structures 
TYPE(pw_env_type), 
POINTER  ::  pw_env  the pw_env that holds the fully distributed realspace grid 
TYPE(qs_kind_type), 
DIMENSION(:), POINTER  ::  qs_kind_set  the qs_kind_set needed to setup a confinement cavity 
Releases all arrays within the mixed CDFT result container
TYPE(mixed_cdft_result_type) 
::  results  the container 
Updates arrays within the mixed CDFT result container
TYPE(mixed_cdft_result_type) 
::  results  the array container  
REAL(dp), 
OPTIONAL 
::  lowdin(:)  CDFT electronic couplings from Lowdin orthogonalization  
REAL(dp), 
OPTIONAL 
::  wfn(:)  CDFT electronic couplings from wavefunction overlap method  
REAL(dp), 
OPTIONAL 
::  nonortho(:)  CDFT electronic couplings (interaction energies) before orthogonalization  
REAL(dp), 
OPTIONAL 
::  metric(:,:)  Reliablity metric for CDFT electronic couplings  
REAL(dp), 
OPTIONAL 
::  rotation(:)  CDFT electronic couplings using the weight function matrix for orthogonalization  
REAL(dp), 
OPTIONAL 
::  h(:,:)  The mixed CDFT Hamiltonian  
REAL(dp), 
OPTIONAL 
::  s(:,:)  The overlap matrix between CDFT states  
REAL(dp), 
OPTIONAL 
::  wad(:,:)  Integrals of type 

REAL(dp), 
OPTIONAL 
::  wda(:,:)  Integrals of type 

REAL(dp), 
OPTIONAL 
::  w_diagonal(:,:)  Values of the CDFT constraints  
REAL(dp), 
OPTIONAL 
::  energy(:)  Energies of the CDFT states  
REAL(dp), 
OPTIONAL 
::  strength(:,:)  Lagrangian multipliers of the CDFT states  
REAL(dp), 
OPTIONAL 
::  s_minushalf(:,:)  S^(1/2) 
inits the given mixed_cdft_type
TYPE(mixed_cdft_type), 
POINTER 
::  cdft_control  the object to init 
releases the given mixed_cdft_type
TYPE(mixed_cdft_type), 
POINTER 
::  cdft_control  the object to release 
Initializes the mixed_cdft_work_type
TYPE(mixed_cdft_work_type) 
::  matrix  the type to initialize 
Releases arrays within the mixed CDFT work matrix container
TYPE(mixed_cdft_work_type) 
::  matrix  the container 
Buffers for load balancing
INTEGER 
::  rank  indices of the processors the data in this buffer should be sent to  
INTEGER 
::  tag  mpi tags for the messages to send  
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  cavity  the cavity to send 
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  weight  the weight to send 
REAL(dp), 
POINTER, DIMENSION(:,:,:,:)  ::  gradients  the gradients to send 
Load balancing control for mixed CDFT calculation
INTEGER 
::  my_source  index of the processor which will send this processor data  
INTEGER 
::  distributed  bounds that determine which grid points this processor will compute after applying load balancing (is_special = .FALSE.)  
INTEGER 
::  my_dest_repl  the dest_list arrays of all processors which send additional work to this processor (indices of the processors where the redistributed slices should be returned)  
INTEGER 
::  dest_tags_repl  tags for the send messages (is_special = .FALSE.)  
INTEGER 
::  more_work  allow heavily overloaded processors to redistribute more_work slices  
INTEGER, 
DIMENSION(:), POINTER  ::  bo  bounds of the data that this processor will send to other processors which tells the receivers how to rearrange the data correctly 
INTEGER, 
DIMENSION(:), POINTER  ::  expected_work  a list of the estimated work per processor 
INTEGER, 
DIMENSION(:), POINTER  ::  prediction_error  the difference between the estimated and actual work per processor 
INTEGER, 
DIMENSION(:,:), POINTER  ::  target_list  a list of processors to send data and the size of data to send 
LOGICAL 
::  recv_work  flag that determines if this processor will receive data from others  
LOGICAL 
::  send_work  flag that determines if this processor will send data to others  
LOGICAL, 
DIMENSION(:), POINTER  ::  recv_work_repl  list of processor indices where this processor will send data during load balancing 
REAL(dp) 
::  load_scale  allow underloaded processors to accept load_scale additional work  
REAL(dp) 
::  very_overloaded  value to determine which processors are heavily overloaded  
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  cavity  the cavity that this processor builds in addition to its own cavity defined on the grid points which were redistributed to this processor 
REAL(dp), 
POINTER, DIMENSION(:,:,:)  ::  weight  the weight that this processor builds in addition to its own weight 
REAL(dp), 
POINTER, DIMENSION(:,:,:,:)  ::  gradients  the gradients that this processor builds in addition to its own gradients 
TYPE(buffers), 
DIMENSION(:), POINTER  ::  sendbuff  ... 
TYPE(p_buffers), 
DIMENSION(:), POINTER  ::  recvbuff  ... 
TYPE(repl_info), 
DIMENSION(:), POINTER  ::  recv_info  additional information on the data this processor will receive 
Container for results related to a mixed CDFT calculation
REAL(dp), 
ALLOCATABLE, DIMENSION(:)  ::  lowdin  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:)  ::  nonortho  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:)  ::  rotation  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:)  ::  wfn  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:)  ::  energy  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  strength  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  metric  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  h  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  s  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  s_minushalf  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  wad  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  wda  ... 
REAL(dp), 
ALLOCATABLE, DIMENSION(:,:)  ::  w_diagonal  ... 
Container for mixed CDFT matrices
TYPE(dbcsr_p_type), 
DIMENSION(:,:), POINTER  ::  w_matrix  ... 
TYPE(dbcsr_type), 
POINTER  ::  mixed_matrix_s  ... 
TYPE(cp_fm_p_type), 
DIMENSION(:,:), POINTER  ::  mixed_mo_coeff  ... 
TYPE(dbcsr_p_type), 
DIMENSION(:,:), POINTER  ::  density_matrix  ... 