The following guidelines will help you to use user routines.
The execution of Notus goes through user routines - empty by default - that can be adapted. They are useful for any kind of initializations, boundary conditions, source terms, etc. that cannot be done with the notus NTS language (specially time depending conditions, heavy formula that are to slow to execute with the NTS reader).
These routines deal with :
initializations boundary conditions source terms physical properties computations next iteration preparations post processing fields definition
They are defined in the src/lib/user directory. You just have to write your own code inside. It will be taken into account in the right place of the code and will overwrite the default behavior of the code.