The thing is, if I type the commands in manually, the shell allows me to run on a serial instance (not satisfactory for my short/long-term needs). I can confirm through an output file that the solver is building successfully.
I don’t understand what is going on. You are building the solver with build_mfixsolver --dmp --batch, which should result in an un-wrapped solver, but the error is giving you pymfix.py
The pymfix.py error is telling you that you can’t pass key=value pairs to the solver on the command line. So put them in the *.mfix file.
Interesting, and very worth a try. I’ll check to see if NODESi and NODESj can be set in the .mfix file. The user guide instructed its declaration when calling the ./mfixsolver in the command line.
(6.3. Running a Batch Solver — MFiX 20.1.0 documentation)
The user guide explicitly states “NODESI”/“NODESJ”; but when I ran serially, I received an unknown keyword error unless I changed the ‘i’ and ‘j’ to lower case.
As for your first statement, are you suggesting I should include either --dmp or --batch, and not both? Should I change the order in which they appear? A bit unsure what is meant by an un-wrapped solver.
It doesn’t matter what the order of the args is and you can use both --dmp and --batch. Since you built with --batch, you should not see pymfix.py. This makes me think that your calling the wrong mfixsolver? Or maybe you need to do a make clean in the build directory if you previously built a python wrapped solver (i.e. without the --batch flag).
The keywords are in all uppercase. NODESI,NODESJ,NODESK apply for DMP (MPI) runs, so they do not apply and should not be used when running serially (the error message ought to be more clear, though)
If you build without --batch (the default, wrapped pymfix), you cannot pass NODESI (or any other keyword) on the command line (put them in the *.mfx file instead)
If you build with --batch (unwrapped), you can pass NODESI etc. keywords on the command line.