Skip to content

Conversation

@ke7kto
Copy link

@ke7kto ke7kto commented Oct 28, 2025

Addresses Issue #2539


Pull Request Description

What are the significant changes in functionality due to this change request?

This PR makes slight changes to the help documentation and the keywords looked for by the melcor code interface to allow RAVEN to run a melcor 1.8.6 input file.


For Change Control Board: Change Request Review

The following review must be completed by an authorized member of the Change Control Board.

  • 1. Review all computer code.
  • 2. If any changes occur to the input syntax, there must be an accompanying change to the user manual and xsd schema. If the input syntax change deprecates existing input files, a conversion script needs to be added (see Conversion Scripts).
  • 3. Make sure the Python code and commenting standards are respected (camelBack, etc.) - See on the wiki for details.
  • 4. Automated Tests should pass, including run_tests, pylint, manual building and xsd tests. If there are changes to Simulation.py or JobHandler.py the qsub tests must pass.
  • 5. If significant functionality is added, there must be tests added to check this. Tests should cover all possible options. Multiple short tests are preferred over one large test. If new development on the internal JobHandler parallel system is performed, a cluster test must be added setting, in XML block, the node <internalParallel> to True.
  • 6. If the change modifies or adds a requirement or a requirement based test case, the Change Control Board's Chair or designee also needs to approve the change. The requirements and the requirements test shall be in sync.
  • 7. The merge request must reference an issue. If the issue is closed, the issue close checklist shall be done.
  • 8. If an analytic test is changed/added is the the analytic documentation updated/added?
  • 9. If any test used as a basis for documentation examples (currently found in raven/tests/framework/user_guide and raven/docs/workshop) have been changed, the associated documentation must be reviewed and assured the text matches the example.

precommand = executable
melgCommand = str(preExec) + ' ' + melcin.getFilename()
melcCommand = str(precommand) + ' ' + melcin.getFilename()
melgCommand = str(preExec) + ' i=' + melcin.getFilename()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you provide information about this change?

Copy link
Author

@ke7kto ke7kto Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm checking with a member of my team that uses 2.2 to make sure this doesn't break the interface, please don't merge until I've verified with them.

The reason for this change: There is an ow=o flag that is set elsewhere to force overwriting of files when there is already an output file where melcor is set to write its output (for example, when melcor is run after melgen, this is the default behavior). Setting ow=o gets rid of the interactive prompt and makes RAVEN control much simpler, but the code structure of 1.8.6 only allows an input file to be specified without the i= flag if there are no keyword arguments on the command line, otherwise throwing an error.

Again, I have not tested this on 2.X Melcor, I'll check back in when I do to make sure this doesn't break that.

lastRow = readLines[-1]
if self.goodWord in lastRow:
failure = False
for lastRow in readLines[-4:]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there a reason why we are looking at the last 4 lines?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the last four lines of a 1.8.6 diagnostics file (with good output) are as follows:

Calculation terminated by : USER INPUT TEND (END OF PROBLEM)

JOB TERMINATION PROCEDURE STARTED

so there are two blank lines and a line that doesn't add any information on the run. Only the fourth from the end in this case has useful information. Checking the last four should preserve the 2.2 interface and allow 1.8.6 output (of which the output file has no information on termination) to be parsed properly

… need to use <MPIParam>--bind-to none</MPIParam> in <Mode> section of <RunInfo> to ensure good performance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants