Hi JPGD - I just notice this followup question which did not get a reply - sorry about that!
I’m not sure if you are still pursuing this, but I have a few comments on the topic of remote operation.
It would be easiest if you could just run the full MFiX GUI on the remote host - with some kind of X11 forwarding over your VPN - then all the files would be written for you.
As Justin explained, the MFIX solver job opens up an HTTP port (web service) and the MFIX GUI communicates with the running solver job.
This channel is used to collect status information about the running job (is the job still running? what are the current nit, time step and residuals?). This HTTP channel is also used to control the job (pause/resume). The HTTP channel offers a finer-grained control than the shared filesystem, and it’s possible to monitor at a higher frequency - by default the GUI polls the solver at 10 Hz.
If you enable “developer mode” you can see what these HTTP packets coming back from the solver look like - there’s a tab for MFiX responses
where the “live” data is shown. The HTTP protocol is used because the solver and the GUI may not be running on the same node - we support a “remote solver” mode.
However, not all of the communication between the solver and the front end goes over this HTTP channel - we also rely on a shared filesystem (NFS). We have at times discussed implementing a “fully detached” mode where this shared filesystem would not be needed, but there are currently no plans to implement that.
So, if you can’t use X11 forwarding to just run the GUI on the remote node, another option would be to set up an NFS mount across this remote connection, and set up up a job submission script, then you could use the GUI as intended, running locally, with full job control and .csv files written by the GUI.
If that’s not possible, and you want to collect this data, you’ll have to monitor the webserver yourself. When you start the solver job, it will write a file called <run_name>.pid
in the project directory.
In that file there’s a line like
url=http://XXX.XXX.XXX.XXX:YYY
Now, you can connect to that URL and get the status data.
If the port is open on your VPN, you can even connect to the remote job with a web browser.
There is a very simple, but undocumented HTTP API for controlling solver jobs. If you look at mfixgui/pymfix_webserver.py
you can see the supported commands. In particular, appending /status
to the end of the url will get you a status report from the solver, which is formatted as JSON. This contains the high-frequency residuals, etc. If you know a bit of Python it shouldn’t be too hard to write a script that monitors this port (at whatever frequency you prefer) and saves data to a .csv. But, since this functionality is all already present in the MFiX GUI, I suggest you find a way to use that.
Hope this helps,