We have mechanism-handling code and fvm-specific code, and there is no real need for these to be as intimately tied as they currently are. The required dependencies between them are opaque and a bit confusing due to our source layout and class and file naming conventions in this area.
Give unto fvm what pertains to the finite volume method discretization, and give unto mechanism that which belongeth to the mechanism code.
Rejig file paths, names to suit.
Make public headers to enable out-of-tree mechanism builds (this might require a small measure of refactoring).
We have mechanism-handling code and fvm-specific code, and there is no real need for these to be as intimately tied as they currently are. The required dependencies between them are opaque and a bit confusing due to our source layout and class and file naming conventions in this area.