Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
New wave-functions implementation (electronic-structure#747)
* WIP: external order of G-vectors * WIP: external order of G-vectors * experiment with external G-vector order * Initialize G-vectors with a predefined set * external G-vector order needs testing * fixes for external G-vector order * external G-vector order needs testing * WIP: new wave functions impl. * need to test H|psi> again * need to work on a standalone test first * remove G+k parameters * try QE order * remove 2nd template parameter of apply_preconditioner() * small fixes * small fixes * small fixes * WIP: create row- and col- G+k vector sets * pass gkvec_row_ and gkvec_col_ to Matching_coefficients * do not pass igk__ index to beta-projectors class * remove debug out * WIP: new wave functions impl. * remove commented code * introduce base class for wave-functions * Fix/beta projectors for exact diag (electronic-structure#742) * WIP: create row- and col- G+k vector sets * pass gkvec_row_ and gkvec_col_ to Matching_coefficients * do not pass igk__ index to beta-projectors class * remove debug out * fix typo * draft of the new wave-functions class * draft of the new wave-functions class * try default move constructor * small fix * do not use c++17 features * need to remove in another PR first * need to remove 'using namespace' in another PR first * fixes * fiex * weird namespace error * fixes * use costa to swap fv eigen vectors * move new WFs to wf:: space * move new WFs to wf:: space * move to a separate function * remove commented code * adopt split_in_block() in the new apply_fv_h_o * introduce Wave_functions_mt and more strong types * wip: generate fv wave-functions using new wf:: impl. * wip: transform new wave-functions * wip * wip * wip * wip * wip * wip * wip * add test25 for NiO lda+u * Temporary commit to test inner product on GPUs TODO for testing: * inner product * tranformation * orthogonalisation * CG solver * application of local Hamiltonian * davidson solver other TODO: * restore commented tests * restore GPU branch * cleanup * fix vebosity level * fix * cleanup * fix in the assert check * remove matrix_distribution_t enum; it is no longer needed * cleanup * cleanup * update test * update test ortho * fix in wf::orthogonalize() * ready to test hloc * ready to test hloc * ready to test hloc * fixes * remove template from device_memory_guard * ready to test Davidson solver on GPUs * use wf::inner() for <beta|phi> inner product * enable initialize_subspace() on GPU * fix for dmatrix::copy_to * add inline * move new impl. of Davidson to GPU * add ifdef guards * restoring GPU code * compute muffin-tin checksum on GPU * restoring iterative lapw solver on GPU * restoring lapw code on GPU * include utils/rte.hpp * fix axpby for zero alpha or beta * GPU and GPU parallel tests pass * restore custom swap of wave functions * all tests pass * working on the basic documentation * temporary commit * use global memory pool * fix * remove unused file * make sure memory pool cannot be duplicated in compilation units * restore and cleanup tests * fix eigensolvers mem.pools * fix * update nlcglib interface - add Wave_function_base::pw_coeffs(spin_index) - api changes transferred to nlcg code * strong_type::operator T() - make std::vector<>::operator[spin_index] etc work without get * nlcglib: fix assert statement * restore and cleanup tests * restore and cleanup tests * try magma ci/cd workflow * add short cut for checking if T is real, add missing includes * simplify template for wf::inner - types in wf::inner used in beta_projectors_base.hpp can be automatically deduced * clean memory pools * restore fp32/fp64 innner() and transform() functions * remove unused files * remove unused header * minor fixes * fix for magma ci/cd * one more fix * cleanup * cleanup * restore function Co-authored-by: Simon Pintarelli <simon.pintarelli@cscs.ch>
- Loading branch information