# Clean Up Dawn Headers ###### tags: `functional cycle 12` Developers: Matthias Appetite: 1 Week This project can be considered a stand alone project or be incorporated into other efforts, like removing dusk & dawn from the exclaim toolchain ## Background In the bindings being generated, 8 headers from dawn are included. While all of them are possibly required, they could certainly be slimmed down, maybe merged or re-organized in other ways. They don't follow a common coding style and are suspected to be of varying quality. Furthermore, there is quite a bit of code being generated that is static and could be refactored into a header instead. ## Goals * Go through these headers, ensure a common level of code quality and consistent style. Re-organize the code as needed; maybe some headers can be merged. Remove static code from the generated bindings as deemed approrpriate and move to a header, adapt the bindings generator accordingly. * References to the `dawn` namespace should be purged * Eventually, these headers should be moved out of dusk & dawn. This should be syncronized with the efforts to remove dusk and dawn from the icon-exclaim toolchain ## Non Goals Do not try to change the actual logic of the code, e.g. do not try to replace vtk serialization by a vtk library or similar. ### Known Steps A list of the currently included headers follow, with some suggestions for improvements that were immediately apparent when breifly skimming the headers - `cuda_utils.hpp` Can probably be trimmed down a lot, reshaping functions probably unused. Could end up to only contain meshing aspects, so maybe rename or move into another header - `cuda_verify.hpp` Templating of verification functions can be improved - `defs.hpp` dawn precision handling, try to remove this - `to_json.hpp` looks reasonable - `to_vtk.hpp` consider to refactor this into a header only library, `MeshInfoVtk` may be problamtic though - `unstructured_domain.hpp` may be unused since we pass domains now explicitly from FROTRAN - `unstructured_interface.hpp` may be unused since we use SID now - `verification_metrics.hpp` maybe try to move this