The interface to mcfost should be changed such that wakeflow only specifies the strictly required parameters from the .para config file for mcfost.
Currently, wakeflow tells mcfost the necessary grid and physics, but also guesses some other parameters that are probably sensible for the user but potentially not desired. It is also NOT documented what these are and why they are the specific values. This is definitely poor practice. This should be changed such that besides the required physics parameters, the other parameters are (somehow) set by the user. Probably just by having them provide a .para file, where the necessary parameters are overridden by wakeflow.
Additionally, the mcfost parameter file is currently distributed with wakeflow. This is bad practice. wakeflow should include a script to download the .para file using the user's mcfost installation.
Finally, mcfost should be called using the run function from pymcfost instead of using a sys call to mcfost. This is more effectively future-proof as pymcfost is more likely to be updated as required than wakeflow's interface. It would also allow the user to pass through additional keywords for calling mcfost as they are arguments in the pymcfost function.
The interface to
mcfostshould be changed such thatwakeflowonly specifies the strictly required parameters from the.paraconfig file formcfost.Currently,
wakeflowtellsmcfostthe necessary grid and physics, but also guesses some other parameters that are probably sensible for the user but potentially not desired. It is also NOT documented what these are and why they are the specific values. This is definitely poor practice. This should be changed such that besides the required physics parameters, the other parameters are (somehow) set by the user. Probably just by having them provide a.parafile, where the necessary parameters are overridden bywakeflow.Additionally, the
mcfostparameter file is currently distributed withwakeflow. This is bad practice.wakeflowshould include a script to download the.parafile using the user'smcfostinstallation.Finally,
mcfostshould be called using therunfunction frompymcfostinstead of using asyscall tomcfost. This is more effectively future-proof aspymcfostis more likely to be updated as required thanwakeflow's interface. It would also allow the user to pass through additional keywords for callingmcfostas they are arguments in thepymcfostfunction.