idaholab / raven

RAVEN is a flexible and multi-purpose probabilistic risk analysis, validation and uncertainty quantification, parameter optimization, model reduction and data knowledge-discovering framework.
https://raven.inl.gov/
Apache License 2.0
217 stars 133 forks source link

[UNDER-DISCUSSION] OutStreams Inputs #1330

Closed PaulTalbot-INL closed 6 months ago

PaulTalbot-INL commented 3 years ago

Under Discussion Topic

With the merge of #1329 the OutStream is now an Entity much more like other RAVEN entities, with a base class that is extensible rather than a "manager" that instantiates sub-instances.

This means it should be easier to create custom printing/plotting tasks as OutStreams, such as the dataMining plotting that we already have.

This invites us to consider how we want these to show up in the input file. There's a couple things to consider:

The existing setup for dataMining uses the structure:

<!-- Method 0, existing -->
<OutStreams>
  <Plot name='existing'>
    <plotSettings>
      <plot>
        <type>dataMining</type>
        ...
<Steps>
  <IOStep>
   ...
   <Output class="OutStream" type="Plot">existing</Output>
   ...

Another option would be to add each new OutStream as a distinct type, keeping Print and Plot as the generic options:

<!-- Method 1, entities -->
<OutStreams>
  <DataMining name='entities'>
  ...
<Steps>
  <IOStep>
   ...
   <Output class="OutStream" type="DataMining">entities</Output>
   ...

Other options may be worth considering, too.


For Change Control Board: Issue Review

This review should occur before any development is performed as a response to this issue.


For Change Control Board: Issue Closure

This review should occur when the issue is imminently going to be closed.

PaulTalbot-INL commented 3 years ago

There's a couple things I like about Method 1 (entities):

It also allows us to keep the existing Plot and Print the way they are, and is easy to build the InputData for without checking subtypes too much.