23 #include <sys/types.h> 34 params.
addClassDescription(
"Adds short-cut syntax and common parameters to the Outputs block.");
38 "exodus",
false,
"Output the results using the default settings for Exodus output.");
40 "nemesis",
false,
"Output the results using the default settings for Nemesis output");
42 "console",
true,
"Output the results using the default settings for Console output");
45 "Output the scalar variable and postprocessors to a *.csv " 46 "file using the default CSV output.");
49 "Output the vector postprocessors to a *.xml " 50 "file using the default XML output.");
53 "Output Reporter values to a *.json " 54 "file using the default JSON output.");
56 "vtk",
false,
"Output the results using the default settings for VTKOutput output");
58 "xda",
false,
"Output the results using the default settings for XDA/XDR output (ascii)");
60 "xdr",
false,
"Output the results using the default settings for XDA/XDR output (binary)");
62 "gmv",
false,
"Output the results using the default settings for GMV output");
64 "tecplot",
false,
"Output the results using the default settings for Tecplot output");
68 "Output the scalar and postprocessor results using the default settings for GNUPlot output");
70 "solution_history",
false,
"Print a solution history file (.slh) using the default settings");
71 params.
addParam<
bool>(
"progress",
false,
"Print a progress bar");
72 params.
addParam<
bool>(
"dofmap",
false,
"Create the dof map .json output file");
73 params.
addParam<
bool>(
"controls",
false,
"Enable the screen output of Control systems.");
78 params.
addParam<
bool>(
"color",
true,
"Set to false to turn off all coloring in all outputs");
79 params.
addParam<std::string>(
"file_base",
80 "Common file base name to be utilized with all output objects");
81 params.
addParam<std::vector<std::string>>(
"output_if_base_contains",
82 "If this is supplied then output will only be done in " 83 "the case that the output base contains one of these " 84 "strings. This is helpful in outputting only a subset " 85 "of outputs when using MultiApps.");
87 "time_step_interval", 1,
"The interval (number of time steps) at which output occurs");
88 params.
addParam<
unsigned int>(
"interval",
89 "The interval (number of time steps) at which output occurs");
90 params.
deprecateParam(
"interval",
"time_step_interval",
"02/01/2025");
91 params.
addParam<std::vector<Real>>(
"sync_times",
93 "Times at which the output and solution is forced to occur");
95 "minimum_time_interval", 0.0,
"The minimum simulation time between output steps");
97 "append_date",
false,
"When true the date and time are appended to the output filename.");
98 params.
addParam<std::string>(
"append_date_format",
99 "The format of the date/time to append (see " 100 "http://www.cplusplus.com/reference/ctime/" 103 params.
addParam<std::vector<VariableName>>(
106 "A list of the variables and postprocessors that should NOT be output to the Exodus " 107 "file (may include Variables, ScalarVariables, and Postprocessor names).");
108 params.
addParam<std::vector<VariableName>>(
111 "A list of the variables and postprocessors that should be output to the Exodus file " 112 "(may include Variables, ScalarVariables, and Postprocessor names).");
121 "print_perf_log",
false,
"Use perf_graph instead!",
"Use perf_graph instead!");
124 "perf_graph",
false,
"Enable printing of the performance graph to the screen (Console)");
126 params.
addParam<
bool>(
"perf_graph_live",
true,
"Enables printing of live progress messages");
128 "perf_graph_live_time_limit", 5.0,
"Time (in seconds) to wait before printing a message.");
130 "perf_graph_live_mem_limit", 100,
"Memory (in MB) to cause a message to be printed.");
132 params.
addParam<
bool>(
"print_mesh_changed_info",
134 "When true, each time the mesh is changed the mesh information is printed");
135 params.
addParam<
bool>(
"print_linear_residuals",
137 "Enable printing of linear residuals to the screen (Console)");
138 params.
addParam<
bool>(
"print_nonlinear_residuals",
140 "Enable printing of nonlinear residuals to the screen (Console)");
141 params.
addParam<
bool>(
"print_nonlinear_converged_reason",
143 "Enable/disable printing of the nonlinear solver convergence reason to the " 144 "screen. This parameter only affects the output of the third-party solver " 145 "(e.g. PETSc), not MOOSE itself.");
146 params.
addParam<
bool>(
"print_linear_converged_reason",
148 "Enable/disable printing of the linear solver convergence reason to the " 149 "screen. This parameter only affects the output of the third-party solver " 150 "(e.g. PETSc), not MOOSE itself.");
153 "solution_invalidity_history",
155 "Enable printing of the time history of the solution invalidity occurrences " 156 "to the screen (console)");
163 :
Action(params), _action_params(_action_factory.getValidParams(
"AddOutputAction"))
176 #ifdef LIBMESH_HAVE_EXODUS_API 177 if (getParam<bool>(
"exodus"))
178 create(
"Exodus",
"exodus");
180 if (getParam<bool>(
"exodus"))
181 mooseWarning(
"Exodus output requested but not enabled through libMesh");
184 #ifdef LIBMESH_HAVE_NEMESIS_API 185 if (getParam<bool>(
"nemesis"))
186 create(
"Nemesis",
"nemesis");
188 if (getParam<bool>(
"nemesis"))
189 mooseWarning(
"Nemesis output requested but not enabled through libMesh");
193 if (getParam<bool>(
"console") && !
hasConsole())
194 create(
"Console",
"console");
196 if (getParam<bool>(
"csv"))
199 if (getParam<bool>(
"xml"))
200 create(
"XMLOutput",
"xml");
202 if (getParam<bool>(
"json"))
205 #ifdef LIBMESH_HAVE_VTK 206 if (getParam<bool>(
"vtk"))
209 if (getParam<bool>(
"vtk"))
210 mooseWarning(
"VTK output requested but not enabled through libMesh");
213 if (getParam<bool>(
"xda"))
216 if (getParam<bool>(
"xdr"))
219 if (getParam<bool>(
"gmv"))
222 if (getParam<bool>(
"tecplot"))
223 create(
"Tecplot",
"tecplot");
225 if (getParam<bool>(
"gnuplot"))
226 create(
"Gnuplot",
"gnuplot");
228 if (getParam<bool>(
"solution_history"))
229 create(
"SolutionHistory",
"solution_history");
231 if (getParam<bool>(
"progress"))
232 create(
"Progress",
"progress");
234 if (getParam<bool>(
"dofmap"))
235 create(
"DOFMap",
"dofmap");
238 std::optional<std::string> from_param_name;
240 if (getParam<bool>(
"controls"))
242 from_param_name =
"controls";
247 from_param_name =
"show_controls";
251 create(
"ControlOutput", *from_param_name, from_params);
256 std::optional<std::string> from_param_name;
258 if (getParam<bool>(
"perf_graph"))
260 from_param_name =
"perf_graph";
263 else if (getParam<bool>(
"print_perf_log"))
265 from_param_name =
"print_perf_log";
270 from_param_name =
"timing";
274 create(
"PerfGraphOutput", *from_param_name, from_params);
276 if (!getParam<bool>(
"perf_graph_live"))
278 if (!from_param_name)
292 if (getParam<bool>(
"solution_invalidity_history"))
294 create(
"SolutionInvalidityOutput",
"solution_invalidity_history");
297 if (!getParam<bool>(
"color"))
305 if (!getParam<bool>(
"console") || (
isParamValid(
"print_nonlinear_converged_reason") &&
306 !getParam<bool>(
"print_nonlinear_converged_reason")))
309 if (!getParam<bool>(
"console") || (
isParamValid(
"print_linear_converged_reason") &&
310 !getParam<bool>(
"print_linear_converged_reason")))
319 const std::optional<std::string> & param_name,
334 params.set<std::string>(
"type") = object_type;
337 std::transform(object_type.begin(), object_type.end(), object_type.begin(), ::tolower);
340 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
365 if (
type.compare(
"Console") == 0 && params.
get<
bool>(
"output_screen"))
InputParameters _action_params
Parameters from the action being created (AddOutputAction)
A MultiMooseEnum object to hold "execute_on" flags.
void create(std::string object_type, const std::optional< std::string > ¶m_name, const InputParameters *const from_params=nullptr)
Helper method for creating the short-cut actions.
std::list< Action * >::iterator ActionIterator
alias to hide implementation details
ActionWarehouse & _awh
Reference to ActionWarehouse where we store object build by actions.
bool hasConsole()
Check if a Console object that outputs to the screen has been defined.
InputParameters & parameters()
Get the parameters of the object.
static ExecFlagEnum getDefaultExecFlagEnum()
Return an ExecFlagEnum object with the available execution flags for Output objects.
CommonOutputAction(const InputParameters ¶ms)
void addActionBlock(std::shared_ptr< Action > blk)
This method add an Action instance to the warehouse.
const ExecFlagType EXEC_TIMESTEP_END
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters ¶meters)
static InputParameters validParams()
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
static InputParameters validParams()
InputParameters & getObjectParams()
Retrieve the parameters of the object to be created by this action.
void setActive(bool active)
Turn on or off timing.
void setLiveMemoryLimit(unsigned int mem_limit)
Sert the memory limit before a message prints.
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
void disableLivePrint()
Completely disables Live Print (cannot be restarted)
const std::string & type() const
Get the type of this class.
const std::string & _current_task
The current action (even though we have separate instances for each action)
std::string getDocString() const
Generate a documentation string for the "execute_on" parameter.
MooseApp & _app
The MOOSE application this is associated with.
ActionFactory & _action_factory
Builds Actions.
const std::string & getMooseObjectType() const
Return the object type to be created.
const T & getParam(const std::string &name)
Retrieve a parameter for the object.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void dontAddNonlinearConvergedReason(FEProblemBase &fe_problem)
Function to ensure that -snes_converged_reason is not added to the PetscOptions storage object to be ...
registerMooseAction("MooseApp", CommonOutputAction, "common_output")
bool setColorConsole(bool use_color, bool force=false)
Turns color escape sequences on/off for info written to stdout.
PerfGraph & perfGraph()
Get the PerfGraph.
void associateWithParameter(const std::string ¶m_name, InputParameters ¶ms) const
Associates the object's parameters params with the input location from this Action's parameter with t...
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
void setCommonParameters(const InputParameters *params_ptr)
Stores the common InputParameters object.
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
const InputParameters & parameters() const
Get the parameters of the object.
ActionIterator actionBlocksWithActionEnd(const std::string &task)
void dontAddLinearConvergedReason(FEProblemBase &fe_problem)
Function to ensure that -ksp_converged_reason is not added to the PetscOptions storage object to be l...
void setLiveTimeLimit(Real time_limit)
Set the time limit before a message prints.
ActionIterator actionBlocksWithActionBegin(const std::string &task)
Iterators to the Actions in the warehouse.
Meta-action for creating common output object parameters This action serves two purpose, first it adds common output object parameters.
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
const ExecFlagType EXEC_INITIAL