14/2/02 csg: I needed another pointer in the threads, so now we pass 5 pointers, not 4. any code that uses threads needs to be updated. ---------------------------------------------------------------------- 12/03/03 ipd: renamed .c to .cpp files , removed fortran wrappers for matdiag removed ESSL diagonalization and Cray functionality WL fortran kernels replaced with f2c converted versions 17/03/03 ipd TODO: o put new command to switch to eigenstates of the hamiltonian o remove the old band structure and remove requirement for (pseudo)potentials for band structure calculations o convert all wl code from c to c++ (probably mostly headers) 01/31/02 ipd: PW_ComplexColumn has few additions which have to be reflected to the WL counterpart 02/18/02 ipd: commented out the fermi fillings from calcUVCn_d_Hsub_fillins()/minimize.c 02/22/02 ipd: have to think of better symmetry setup - check the ion positions 02/25/02 ipd: FOR DISCUSSION: o how to handle different exc_l(s)da's w/ as much code reuse as possible (propagate flag to lowest level??) o header files restructuring?: some headers define classes, other interfaces should we keep the interfaces basis independent? 12/06/02 ipd: torkel reports problem w/ reporting the total charges on levels matt says he runs the old code to figure them out we MUST fix this and have dft-two report the correct charges --- may be prof. Arias has fixed it - in Sept. upgrade to GGA missing J in calculate total charge densities!!! 22/10/02 ipd: Jacobi segfaults (pw serial) - urgency=low (since we have LAPACK) 23/10/02 ipd: redesign the commands to allow dependencies like +DEP0 or +DEP1 change the dependence list to list of functions, rather than numbers - then you can do logic with the functions, which would return 0/1. 23/10/02 ipd: in Elecvars.c tie alloc Vscloc (up/dn) to spin-type (right now only up/dn, Vscloc is always present) 24/10/02 ipd: names of the commands: cntrl_read_density etc. may be better called elec_read_density 24/10/02 ipd: Vlocpot: adding read possibility in PW - decide wheather this should remain in dft.c, or move to say elecvars 23/11/02 ipd: Dense grids: diagouterI - how does it know about it? 30/11/02 ipd: HACK ALERT!!: *** new command use_L_orthorombic in WL_BasisSpec *** another level for apply_(inv)L in WL_LO.c to choose between orthorombic and nonorthorombic cells matt's L and invL are way slower than the old ones 4/12/02 ipd: poisson.c rewritten to reduce memory - important for WL which tend to have large basis. IMPORTANT: relies on binary operators eg. Obar(in, out) Linv(in, out) being able to work with 'in' and 'out' the same It will be good to find a way to enforce it. --------------------------------------------------------- We'll need a new system to deal with commands, as is obvious from the number of commands/* related issues in this file. We can work on this in the future, when the time comes to add wavelet-specific commands. -mhe ipd: enclose unsupported commands in '#ifdef PW', also move them to PW_COMMAND_OBJS in makefile, so that they're never compiled ipd: on 21/11/2001 decided to have different PW/WL input files should be common file + include basis.in, but include not working commands/command.c : ipd: enclosed in '#ifdef PW' the PW specific portions commands/ion_species.c : Wrapped pretty much everything in #ifdef"'s. No real functionality in wavelet IonicPotential class. UPDATE: Added some functionality (wrapped in "#ifdef WAVELETS") for compatibility with DFT++ input file. Needed ion-species definition. UPDATE 11/30: Compatibility problems solved. Created WL_ion_species, which allows for type, charge, and mass specification, but does not ask for pseudopotential files, etc. Works with WL_IonSpecies class. -mhe commands/electronic_minimization.c: ipd: removed ELEC_CUTOFF dependence for wavelets ipd: ACTION ITEM - we have to fix this at some point symm.c : Wrapped check_symm_fftbox in "#ifdef". May need to replace with a null function in order to avoid link-time errors. ipd: we have the WL symmetrizers in grid.c split the code on basis dep/indep, and provide the wl part mhe: Created WL_lattice.c in commands/. Added additional code to ensure that wavelets are only passed orthorhombic cells. csg: created #ifndev DEVELOP to shield code that isn't updated, and thus not called in the testing phase ----------- ACTION ITEMS ------------------------ ipd: Representation checks in PW --------------- CLEAN_UP (LATER) -------------------- ipd: clean up header files for wavelets, namespaces, etc - e.g. Dvec->vector3d ipd: a possibly better way to transform kvecs in physical coordinates for L/O ipd: Many explicit scratch space managers were transformed to local coppies (calc_U, calc_KE, calcelecgrad and others from gabor) ipd: change SCALAR_SIZE to datasize (in mpi_allreduce etc) -- seem to cause problems (hangs up) ipd: in diag_outerI.... we malloc temp column array, but it doesn't get "fat" flag - consider something that won't require its explicit setup (loop and new). ALSO VRFY there is no memory leak associated with this malloc ipd: Change '^' and dot (columns, arrays) to give always real - thread it and change the bundle dot to call the array dot. ipd: change diagonalize_hermitian to avoid the last argument ipd: avoid using 'CB = Hsp(CB)' ipd: change '#define REAL(z) ((z).x)' to function on complex AND real ipd: change print_energies(everything, out) to energies.print(out) ipd: WL embedding to be decided w/ input file, not compiler flag ipd: ScalarField - charge density is real (also Vsc etc. esp. for WL) ipd: diag_matrix - should be always real ipd: Complex/RealMatrix - to be implemented on Complex/RealArray mhe: Make WL_IonicPotential work with IonInfo (i.e. read ion charge, etc.)