Jack - this is a good question. The GUI does not have a feature to create a group of equally-spaced monitors, although I can see that this might be a nice feature to have. It’s also possible that NodeWorks might be of some use although I don’t know enough about it to help you with that.
Here’s what I recommend:
In the MFIX GUI, all BCs, monitors, etc are associated with a ‘region’ defined in the Regions
pane. This is really for user convenience, the ‘region’ objects are not used by the MFiX solver, by the time it runs everything is just coordinates. So you can define new monitors in the .mfx
file without having to create regions for them.
If you create a single monitor, you will see something like this in your .mfx
file:
# Monitors
# Monitor 1: Entire domain
monitor_type(1) = 3
monitor_name(1) = 'Entire_domain'
monitor_x_e(1) = 0.15 #!MFIX-GUI eq{float(xmax)}
monitor_x_w(1) = 0.0 #!MFIX-GUI eq{float(xmin)}
monitor_y_s(1) = 0.0 #!MFIX-GUI eq{float(ymin)}
monitor_y_n(1) = 0.9 #!MFIX-GUI eq{float(ymax)}
monitor_dt(1) = 0.05
monitor_p_g(1) = .True.
This matches a region which has been defined as “entire domain”. The region definitions can be found in the MFiX-GUI
section, they are used by the GUI but not the solver.
# Monitor 2
monitor_type(2) = 3
monitor_name(2) = 'M2'
monitor_x_e(2) = 0.19
monitor_x_w(2) = 0.01
monitor_y_s(2) = 0.01
monitor_y_n(2) = 0.91
monitor_dt(2) = 0.051
monitor_p_g(1) = .True.
# Monitor 3
monitor_type(3) = 3
monitor_name(3) = 'M3'
monitor_x_e(3) = 0.20
monitor_x_w(3) = 0.021
monitor_y_s(3) = 0.021
monitor_y_n(3) = 0.921
monitor_dt(3) = 0.0521
monitor_p_g(1) = .True.
you should have as many monitors as you like. It should be pretty easy to write a script to spit out the needed lines.
Now, if you try to load this .mfx
file in the GUI, since the monitors you added do not have a region associated with them, the GUI doesn’t display them in any way - the table in the Monitors pane still shows only the ones you created in the GUI. But they won’t be deleted, if you make changes in the GUI and save the file, the externally-defined monitors are still there (I tested this). This is arguably a bug, or at the very least an incomplete implementation - the GUI should either automatically create region objects corresponding to these monitors, or it should complain that there are monitors it can’t display. The current behavior is buggy but it’s a bug you can take advantage of!
In fact there’s a note in the code that we should automatically create region objects, or else complain if monitors/BCs/ICs etc are defined without having a corresponding region definition … this is the first time it’s really come up as an issue, as far as I know. It will be addressed in a future release.