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.Fsuch 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
WRITEstatements 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
requiredflag from input keywords and sections. The flag states that there is no default value available, but the same effect can be achieved by simply not supplying a default value. To fully remove the flag one also has to adopt the generation of the input reference manual. - Remove the
cp_error_typeand 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_typeis sparsely used. It can be completely replaced by theadd/rm_default_loggermechanism.
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_typefromdbcsrwrap. - Remove
dbcsr_error_typeentirely. - Remove
dbcsr_mutable_type. - Remove various init-routines, rely on Fortran type initializers instead.
Restructurings
- Eliminate the
workmatrices, the assignment to threads should be static. - Enforce clear separation of library layers. For example
arnoldishould be independent from data storage format. - Do not pass any internal data-structure to the “outside”.
- Merge
dbcsrwrapanddbcsr_api. There should only be one API. - Strengthen the API with unit-tests.
- Remove usages of the
FORALLstatement - Remove improper usage of INTERFACEs like this .
Bugs?
dbcsr_adddoes not check for symmetry.dbcsr_adddoes not check the “transpose-state”.dbcsr_copyhas confusing order of arguments.
Missing features?
dbcsr_tracedoes not work with matrices of different symmetries.dbcsr_adddoes 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.1434371588.txt.gz · Last modified: (external edit)
