(Not) modifying parameter tree during simulation
I think in the design of the parameter tree, it was acutally desired that the tree shouldn't be modified after the initialization (but it can be initialized several times by overwriting previous initializaitons).
However currently it is technically possible to call init anywhere (globally) and modify the params which may lead to side effects in other classes.
It's technically possible to throw an error if the tree is modified by init after getParam has been called for the first time. However in some tests (some sequential tests and the fluid system test) this bug/feature is actually used/misused.
We should decide which way we want it and think about how to enforce it backwards-compatibly.