dev:todo
This is an old revision of the document!
−Table of Contents
Nice to Haves
This is a list of nice to have features or changes in CP2K that nobody got around to do, yet
Input / Output
- Refactor
cp_output_handling.F
such that it does not require the input_section. Instead there should be a routine to parse the input section once and store that information into a novelprintkey_type
. - Evolve the printkey into a real logging mechanism. If the
WRITE
statements were converted into functions calls, one could annotate the output in a standardized way. Such annotations would then allow for parsing the output in a generic fashion. - Remove the
cp_error_type
and the 'pseudo exception handling' code likeIF (.NOT.failure)
. These constructs clutter the code without providing any useful functionality. The side-feature of the error_type to carry a reference to acp_logger_type
is sparsely used. It can be completely replaced by theadd/rm_default_logger
mechanism.
Unit-Tests
- The test coverage of the XC-functionals is pretty low. Since we have libxc as reference, one could easily write a unit-test that compares both implementations by applying them to a randomly generated density.
DBCSR
Removals
- Remove
cp_error_type
fromdbcsrwrap
. - Remove
dbcsr_error_type
entirely. - Remove
dbcsr_mutable_type
. - Remove various init-routines, rely on Fortran type initializers instead.
Restructurings
- Eliminate the
work
matrices, the assignment to threads should be static. - Enforce clear separation of library layers. For example
arnoldi
should be independent from data storage format. - Do not pass any internal data-structure to the “outside”.
- Merge
dbcsrwrap
anddbcsr_api
. There should only be one API. - Strengthen the API with unit-tests.
- Remove usages of the
FORALL
statement - Remove improper usage of INTERFACEs like this .
Bugs?
dbcsr_add
does not check for symmetry.dbcsr_add
does not check the “transpose-state”.dbcsr_copy
has confusing order of arguments.
Missing features?
dbcsr_trace
does not work with matrices of different symmetries.dbcsr_add
does not work with matrices of different symmetries.- Complex matrices are not fully supported, which is why they are not used in e.g. RTP.
- Expose dbcsr's internal types as Fortran types. This means having separate types for symmetry/non-symmetric and int/float/complex.
- MIC port (integrate)
- finish OpenCL port (kernels)
dev/todo.1435853840.txt.gz · Last modified: 2020/08/21 10:14 (external edit)