How do we develop a larger numerical project
When building up a numerical project there are several elements you should think of, amongst these we take the liberty of mentioning the following.
- How to structure a code in terms of functions and modules
- How to read input data flexibly from the command line
- Find tests and how to write unit tests (test functions). A very good example is Catch, a modern, C++-native, header-only, framework for unit-tests. Try to find suitable tests of the mathematical algorithms as well as tests which reflect the physics of the system.
- It takes one quick command to let all your code undergo heavy testing
- How to refactor code in terms of classes (instead of functions only)
- How to conduct and automate large-scale numerical experiments