www.mooseframework.org
Public Member Functions | Private Attributes | List of all members
OutputInterface Class Reference

A class to provide an common interface to objects requiring "outputs" option. More...

#include <OutputInterface.h>

Inheritance diagram for OutputInterface:
[legend]

Public Member Functions

 OutputInterface (const InputParameters &parameters, bool build_list=true)
 Handles 'outputs' parameter for objects that desire control of variable outputs. More...
 
void buildOutputHideVariableList (std::set< std::string > variable_names)
 Builds hide lists for output objects NOT listed in the 'outputs' parameter. More...
 
const std::set< OutputName > & getOutputs ()
 Get the list of output objects that this class is restricted. More...
 

Private Attributes

MooseApp_oi_moose_app
 Reference the the MooseApp; neede for access to the OutputWarehouse. More...
 
OutputWarehouse_oi_output_warehouse
 Reference to the OutputWarehouse for populating the Output object hide lists. More...
 
std::set< OutputName > _oi_outputs
 The set of Output object names listed in the 'outputs' parameter. More...
 

Detailed Description

A class to provide an common interface to objects requiring "outputs" option.

The 'outputs' option, when set restricts the output of the variable(s) associated with this object to only occur on output objects listed.

Definition at line 43 of file OutputInterface.h.

Constructor & Destructor Documentation

OutputInterface::OutputInterface ( const InputParameters parameters,
bool  build_list = true 
)

Handles 'outputs' parameter for objects that desire control of variable outputs.

Parameters
parametersThe parameters object holding data for the class to use.
build_listIf false the buildOutputHideVariableList must be called explicitly, this behavior is required for automatic output of material properties

Definition at line 39 of file OutputInterface.C.

40  : _oi_moose_app(*parameters.get<MooseApp *>("_moose_app")),
42  _oi_outputs(parameters.get<std::vector<OutputName>>("outputs").begin(),
43  parameters.get<std::vector<OutputName>>("outputs").end())
44 {
45 
46  // By default it is assumed that the variable name associated with 'outputs' is the name
47  // of the block, this is the case for Markers, Indicators, VectorPostprocessors, and
48  // Postprocessors.
49  // However, for Materials this is not the case, so the call to buildOutputHideVariableList must be
50  // disabled, the build_list allows for this behavior. The hide lists are handled by
51  // MaterialOutputAction
52  // in this case.
53  //
54  // Variables/AuxVariables also call the buildOutputHideVariableList method later, because when
55  // their actions
56  // are called the Output objects do not exist. This case is handled by the
57  // CheckOutputAction::checkVariableOutput.
58  if (build_list)
59  {
60  std::set<std::string> names_set;
61  names_set.insert(parameters.get<std::string>("_object_name"));
62  buildOutputHideVariableList(names_set);
63  }
64 }
OutputWarehouse & _oi_output_warehouse
Reference to the OutputWarehouse for populating the Output object hide lists.
Base class for MOOSE-based applications.
Definition: MooseApp.h:58
std::set< OutputName > _oi_outputs
The set of Output object names listed in the &#39;outputs&#39; parameter.
void buildOutputHideVariableList(std::set< std::string > variable_names)
Builds hide lists for output objects NOT listed in the &#39;outputs&#39; parameter.
MooseApp & _oi_moose_app
Reference the the MooseApp; neede for access to the OutputWarehouse.
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition: MooseApp.C:840

Member Function Documentation

void OutputInterface::buildOutputHideVariableList ( std::set< std::string >  variable_names)

Builds hide lists for output objects NOT listed in the 'outputs' parameter.

Parameters
variable_namesA set of variables for which the 'outputs' parameter controls

By default this is called by the constructor and passes the block name as the list of variables. This needs to be called explicitly if the build_list flag is set to False in the constructor. The latter cases is needed by the Material object to work correctly with the automatic material output capability.

Definition at line 67 of file OutputInterface.C.

Referenced by CheckOutputAction::checkVariableOutput(), and OutputInterface().

68 {
69  // Set of available names
70  const std::set<OutputName> & avail = _oi_output_warehouse.getOutputNames();
71 
72  // Check for 'none'; hide variables on all outputs
73  if (_oi_outputs.find("none") != _oi_outputs.end())
74  for (const auto & name : avail)
75  _oi_output_warehouse.addInterfaceHideVariables(name, variable_names);
76 
77  // Check for empty and 'all' in 'outputs' parameter; do not perform any variable restrictions in
78  // these cases
79  else if (_oi_outputs.empty() || _oi_outputs.find("all") != _oi_outputs.end())
80  return;
81 
82  // Limit the variable output to Output objects listed
83  else
84  {
85  // Create a list of outputs where the variable should be hidden
86  std::set<OutputName> hide;
87  std::set_difference(avail.begin(),
88  avail.end(),
89  _oi_outputs.begin(),
90  _oi_outputs.end(),
91  std::inserter(hide, hide.begin()));
92 
93  // If 'outputs' is specified add the object name to the list of items to hide
94  for (const auto & name : hide)
95  _oi_output_warehouse.addInterfaceHideVariables(name, variable_names);
96  }
97 }
OutputWarehouse & _oi_output_warehouse
Reference to the OutputWarehouse for populating the Output object hide lists.
std::set< OutputName > _oi_outputs
The set of Output object names listed in the &#39;outputs&#39; parameter.
const std::set< OutputName > & getOutputNames()
Get a complete set of all output object names.
void addInterfaceHideVariables(const std::string &output_name, const std::set< std::string > &variable_names)
Insert variable names for hiding via the OutoutInterface.
const std::set< OutputName > & OutputInterface::getOutputs ( )

Get the list of output objects that this class is restricted.

Returns
A set of OutputNames

Definition at line 100 of file OutputInterface.C.

101 {
102  return _oi_outputs;
103 }
std::set< OutputName > _oi_outputs
The set of Output object names listed in the &#39;outputs&#39; parameter.

Member Data Documentation

MooseApp& OutputInterface::_oi_moose_app
private

Reference the the MooseApp; neede for access to the OutputWarehouse.

Definition at line 74 of file OutputInterface.h.

OutputWarehouse& OutputInterface::_oi_output_warehouse
private

Reference to the OutputWarehouse for populating the Output object hide lists.

Definition at line 77 of file OutputInterface.h.

Referenced by buildOutputHideVariableList().

std::set<OutputName> OutputInterface::_oi_outputs
private

The set of Output object names listed in the 'outputs' parameter.

Definition at line 80 of file OutputInterface.h.

Referenced by buildOutputHideVariableList(), and getOutputs().


The documentation for this class was generated from the following files: