https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Moose::Builder Class Reference

Parses MOOSE input using HIT/WASP. More...

#include <Builder.h>

Inheritance diagram for Moose::Builder:
[legend]

Public Types

enum  SyntaxFormatterType { INPUT_FILE, YAML }
 

Public Member Functions

 Builder (MooseApp &app, ActionWarehouse &action_wh, Parser &parser)
 
virtual ~Builder ()
 
std::string getPrimaryFileName (bool stripLeadingPath=true) const
 Return the primary (first) filename that was parsed. More...
 
void build ()
 Parse an input file (or text string if provided) consisting of hit syntax and setup objects in the MOOSE derived application. More...
 
void extractParams (const hit::Node *const section_node, InputParameters &p)
 Attempt to extract values from input starting with the section in input in section_node based on the contents of the passed InputParameters p. More...
 
void extractParams (const std::string &prefix, InputParameters &p)
 Attempt to extract values from input starting with the section in input defined by the fullpath prefix based on the contents of the passed InputParameters p. More...
 
void initSyntaxFormatter (SyntaxFormatterType type, bool dump_mode)
 Creates a syntax formatter for printing. More...
 
void buildFullTree (const std::string &search_string)
 Use MOOSE Factories to construct a full parse tree for documentation or echoing input. More...
 
void buildJsonSyntaxTree (JsonSyntaxTree &tree) const
 Use MOOSE Factories to construct a parameter tree for documentation or echoing input. More...
 
void walk (const std::string &fullpath, const std::string &nodepath, hit::Node *n)
 
void errorCheck (const libMesh::Parallel::Communicator &comm, bool warn_unused, bool err_unused)
 
std::vector< std::string > listValidParams (std::string &section_name)
 

Static Public Member Functions

static InputParameters validParams ()
 Parameters that are processed directly by the Parser and are valid anywhere in the input. More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Private Member Functions

bool isGlobal (const hit::Node &node) const
 
const hit::Node * queryGlobalParamsNode () const
 Get the [GlobalParams] section node if it exists. More...
 
void walkRaw (std::string fullpath, std::string nodepath, hit::Node *n)
 

Private Attributes

MooseApp_app
 The MooseApp this Parser is part of. More...
 
Factory_factory
 The Factory associated with that MooseApp. More...
 
ActionWarehouse_action_wh
 Action warehouse that will be filled by actions. More...
 
ActionFactory_action_factory
 The Factory that builds actions. More...
 
Syntax_syntax
 Reference to an object that defines input file syntax. More...
 
Parser_parser
 The front parser. More...
 
hit::Node & _root
 The root node from the Parser. More...
 
std::unique_ptr< SyntaxTree_syntax_formatter
 Object for holding the syntax parse tree. More...
 
std::set< std::string > _extracted_vars
 The set of all variables extracted from the input file. More...
 
std::vector< std::string > _secs_need_first
 The sections that we need to execute first (read during the final walk) More...
 
std::vector< hit::ErrorMessage > _errors
 The errors accumulated during the walk. More...
 
std::map< std::string, std::string > _deprecated_params
 Deprecation warnings (object type/param name) -> (message) More...
 
std::optional< const hit::Node * > _global_params_node
 The hit Node for the [GlobalParams] block, if any If set (could be null), it means we have searched for it. More...
 

Detailed Description

Parses MOOSE input using HIT/WASP.

Definition at line 56 of file Builder.h.

Member Enumeration Documentation

◆ SyntaxFormatterType

Enumerator
INPUT_FILE 
YAML 

Definition at line 59 of file Builder.h.

Constructor & Destructor Documentation

◆ Builder()

Moose::Builder::Builder ( MooseApp app,
ActionWarehouse action_wh,
Parser parser 
)

Definition at line 105 of file Builder.C.

106  : ConsoleStreamInterface(app),
107  _app(app),
108  _factory(app.getFactory()),
109  _action_wh(action_wh),
112  _parser(parser),
113  _root(_parser.getRoot()),
114  _syntax_formatter(nullptr)
115 {
116 }
ActionFactory & _action_factory
The Factory that builds actions.
Definition: Builder.h:139
MooseApp & _app
The MooseApp this Parser is part of.
Definition: Builder.h:133
Parser & _parser
The front parser.
Definition: Builder.h:143
hit::Node & getRoot()
Definition: Parser.C:449
std::unique_ptr< SyntaxTree > _syntax_formatter
Object for holding the syntax parse tree.
Definition: Builder.h:148
ActionFactory & getActionFactory()
Retrieve a writable reference to the ActionFactory associated with this App.
Definition: MooseApp.h:411
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition: MooseApp.h:406
hit::Node & _root
The root node from the Parser.
Definition: Builder.h:145
ConsoleStreamInterface(MooseApp &app)
A class for providing a helper stream object for writting message to all the Output objects...
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
Factory & _factory
The Factory associated with that MooseApp.
Definition: Builder.h:135
ActionWarehouse & _action_wh
Action warehouse that will be filled by actions.
Definition: Builder.h:137

◆ ~Builder()

Moose::Builder::~Builder ( )
virtual

Definition at line 118 of file Builder.C.

118 {}

Member Function Documentation

◆ build()

void Moose::Builder::build ( )

Parse an input file (or text string if provided) consisting of hit syntax and setup objects in the MOOSE derived application.

Definition at line 300 of file Builder.C.

Referenced by MooseApp::setupOptions().

301 {
302  // Pull in extracted variables from the parser (fparse stuff)
304 
305  // There are a few order dependent actions that have to be built first in
306  // order for the parser and application to function properly
307  const auto need_action_syntax_first = [this](const auto & action_name)
308  {
309  const auto syntax = _syntax.getSyntaxByAction(action_name);
310  mooseAssert(syntax.size(), "Empty syntax");
311  std::copy(syntax.begin(), syntax.end(), std::back_inserter(_secs_need_first));
312  };
313 
314  // SetupDebugAction: This action can contain an option for monitoring the
315  // parser progress. It must be parsed first to capture all of the parsing
316  // output progress.
317  need_action_syntax_first("SetupDebugAction");
318 
319  // GlobalParamsAction: This action is checked during the parameter extraction
320  // routines of all subsequent blocks. It must be parsed early since it must
321  // exist during subsequent parameter extraction.
322  need_action_syntax_first("GlobalParamsAction");
323 
324  // DynamicObjectRegistration: This action must be built before any MooseObjectActions
325  // are built. This is because we retrieve valid parameters from the Factory
326  // during parse time. Objects must be registered before validParameters can be retrieved.
327  need_action_syntax_first("DynamicObjectRegistrationAction");
328 
329  // Walk all the sections extracting paramters from each into InputParameters objects
330  for (const auto & sec : _secs_need_first)
331  if (auto n = _root.find(sec))
332  walkRaw(n->parent()->fullpath(), n->path(), n);
333 
334  // Walk for the remainder
335  _root.walk(this, hit::NodeType::Section);
336 
337  // Warn for all deprecated parameters together
338  if (_deprecated_params.size())
339  {
340  std::vector<std::string> messages;
341  for (const auto & key_message_pair : _deprecated_params)
342  messages.push_back(key_message_pair.second);
343  const auto message = MooseUtils::stringJoin(messages, "\n\n");
344 
345  moose::internal::mooseDeprecatedStream(Moose::out, false, true, false, message + "\n\n");
346  }
347 
348  if (_errors.size())
350 }
void walkRaw(std::string fullpath, std::string nodepath, hit::Node *n)
Definition: Builder.C:186
void parseError(std::vector< hit::ErrorMessage > messages) const
Helper for throwing an error with the given messages.
Definition: Parser.C:493
Parser & _parser
The front parser.
Definition: Builder.h:143
std::vector< std::string > _secs_need_first
The sections that we need to execute first (read during the final walk)
Definition: Builder.h:154
const std::set< std::string > & getExtractedVars() const
Definition: Parser.h:206
std::vector< std::string > getSyntaxByAction(const std::string &action, const std::string &task="")
Retrieve the syntax associated with the passed in action type string.
Definition: Syntax.C:211
hit::Node & _root
The root node from the Parser.
Definition: Builder.h:145
std::set< std::string > _extracted_vars
The set of all variables extracted from the input file.
Definition: Builder.h:151
void mooseDeprecatedStream(S &oss, const bool expired, const bool print_title, const bool show_trace, Args &&... args)
Definition: MooseError.h:252
std::vector< hit::ErrorMessage > _errors
The errors accumulated during the walk.
Definition: Builder.h:157
std::map< std::string, std::string > _deprecated_params
Deprecation warnings (object type/param name) -> (message)
Definition: Builder.h:160
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
std::string stringJoin(const std::vector< std::string > &values, const std::string &separator=" ")
Concatenates value into a single string separated by separator.

◆ buildFullTree()

void Moose::Builder::buildFullTree ( const std::string &  search_string)

Use MOOSE Factories to construct a full parse tree for documentation or echoing input.

If the task is nullptr that means we need to figure out which task goes with this syntax for the purpose of building the Moose Object part of the tree. We will figure this out by asking the ActionFactory for the registration info.

We need to see if this action is inherited from MooseObjectAction. If it is, then we will loop over all the Objects in MOOSE's Factory object to print them out if they have associated bases matching the current task.

Now that we know that this is a MooseObjectAction we need to see if it has been restricted in any way by the user.

Definition at line 577 of file Builder.C.

Referenced by MooseApp::setupOptions().

578 {
579  std::vector<std::pair<std::string, Syntax::ActionInfo>> all_names;
580 
581  for (const auto & iter : _syntax.getAssociatedActions())
582  {
583  Syntax::ActionInfo act_info = iter.second;
589  if (act_info._task == "")
590  act_info._task = _action_factory.getTaskName(act_info._action);
591 
592  all_names.push_back(std::pair<std::string, Syntax::ActionInfo>(iter.first, act_info));
593  }
594 
595  for (const auto & act_names : all_names)
596  {
597  InputParameters action_obj_params = _action_factory.getValidParams(act_names.second._action);
598  _syntax_formatter->insertNode(
599  act_names.first, act_names.second._action, true, &action_obj_params);
600 
601  const std::string & task = act_names.second._task;
602  std::string act_name = act_names.first;
603 
609  if (action_obj_params.have_parameter<bool>("isObjectAction") &&
610  action_obj_params.get<bool>("isObjectAction"))
611  {
612  for (const auto & [moose_obj_name, obj] : _factory.registeredObjects())
613  {
614  auto moose_obj_params = obj->buildParameters();
619  const std::vector<std::string> & buildable_types = action_obj_params.getBuildableTypes();
620 
621  // See if the current Moose Object syntax belongs under this Action's block
622  if ((buildable_types.empty() || // Not restricted
623  std::find(buildable_types.begin(), buildable_types.end(), moose_obj_name) !=
624  buildable_types.end()) && // Restricted but found
625  moose_obj_params.hasBase() && // Has a registered base
626  _syntax.verifyMooseObjectTask(moose_obj_params.getBase(),
627  task) && // and that base is associated
628  action_obj_params.mooseObjectSyntaxVisibility() // and the Action says it's visible
629  )
630  {
631  std::string name;
632  size_t pos = 0;
633  bool is_action_params = false;
634  if (act_name[act_name.size() - 1] == '*')
635  {
636  pos = act_name.size();
637 
638  if (!action_obj_params.collapseSyntaxNesting())
639  name = act_name.substr(0, pos - 1) + moose_obj_name;
640  else
641  {
642  name = act_name.substr(0, pos - 1) + "/<type>/" + moose_obj_name;
643  is_action_params = true;
644  }
645  }
646  else
647  {
648  name = act_name + "/<type>/" + moose_obj_name;
649  }
650 
651  moose_obj_params.set<std::string>("type") = moose_obj_name;
652 
653  _syntax_formatter->insertNode(name, moose_obj_name, is_action_params, &moose_obj_params);
654  }
655  }
656  }
657  }
658 
659  // Do not change to _console, we need this printed to the stdout in all cases
660  Moose::out << _syntax_formatter->print(search_string) << std::flush;
661 }
std::string name(const ElemQuality q)
ActionFactory & _action_factory
The Factory that builds actions.
Definition: Builder.h:139
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition: KokkosUtils.h:40
const std::multimap< std::string, ActionInfo > & getAssociatedActions() const
Return all Syntax to Action associations.
Definition: Syntax.C:374
void mooseObjectSyntaxVisibility(bool visibility)
Mutators for controlling whether or not the outermost level of syntax will be collapsed when printed...
InputParameters getValidParams(const std::string &name)
Definition: ActionFactory.C:94
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
const std::vector< std::string > & getBuildableTypes() const
Returns the list of buildable types as a std::vector<std::string>
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
std::unique_ptr< SyntaxTree > _syntax_formatter
Object for holding the syntax parse tree.
Definition: Builder.h:148
std::string _action
Definition: Syntax.h:26
const auto & registeredObjects() const
Returns a reference to the map from names to RegistryEntryBase pointers.
Definition: Factory.h:147
std::string getTaskName(const std::string &action)
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
std::string _task
Definition: Syntax.h:27
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
bool verifyMooseObjectTask(const std::string &base, const std::string &task) const
Returns a Boolean indicating whether a task is associated with on of the MOOSE pluggable systems (BAS...
Definition: Syntax.C:334
Factory & _factory
The Factory associated with that MooseApp.
Definition: Builder.h:135
void collapseSyntaxNesting(bool collapse)
Mutators for controlling whether or not the outermost level of syntax will be collapsed when printed...

◆ buildJsonSyntaxTree()

void Moose::Builder::buildJsonSyntaxTree ( JsonSyntaxTree tree) const

Use MOOSE Factories to construct a parameter tree for documentation or echoing input.

If the task is nullptr that means we need to figure out which task goes with this syntax for the purpose of building the Moose Object part of the tree. We will figure this out by asking the ActionFactory for the registration info.

We need to see if this action is inherited from MooseObjectAction. If it is, then we will loop over all the Objects in MOOSE's Factory object to print them out if they have associated bases matching the current task.

Definition at line 417 of file Builder.C.

Referenced by MooseApp::setupOptions().

418 {
419  std::vector<std::pair<std::string, Syntax::ActionInfo>> all_names;
420 
421  for (const auto & iter : _syntax.getAssociatedTypes())
422  root.addSyntaxType(iter.first, iter.second);
423 
424  // Build a list of all the actions appearing in the syntax
425  for (const auto & iter : _syntax.getAssociatedActions())
426  {
427  Syntax::ActionInfo act_info = iter.second;
433  if (act_info._task == "")
434  act_info._task = _action_factory.getTaskName(act_info._action);
435 
436  all_names.push_back(std::make_pair(iter.first, act_info));
437  }
438 
439  // Add all the actions to the JSON tree, except for ActionComponents (below)
440  for (const auto & act_names : all_names)
441  {
442  const auto & act_info = act_names.second;
443  const std::string & action = act_info._action;
444  const std::string & task = act_info._task;
445  const std::string syntax = act_names.first;
446  InputParameters action_obj_params = _action_factory.getValidParams(action);
447  bool params_added = root.addParameters("",
448  syntax,
449  false,
450  action,
451  true,
452  &action_obj_params,
453  _syntax.getLineInfo(syntax, action, ""),
454  "");
455 
456  if (params_added)
457  {
458  auto tasks = _action_factory.getTasksByAction(action);
459  for (auto & t : tasks)
460  {
461  auto info = _action_factory.getLineInfo(action, t);
462  root.addActionTask(syntax, action, t, info);
463  }
464  }
465 
471  if (action_obj_params.have_parameter<bool>("isObjectAction") &&
472  action_obj_params.get<bool>("isObjectAction"))
473  {
474  for (auto & [moose_obj_name, obj] : _factory.registeredObjects())
475  {
476  auto moose_obj_params = obj->buildParameters();
477  // Now that we know that this is a MooseObjectAction we need to see if it has been
478  // restricted
479  // in any way by the user.
480  const std::vector<std::string> & buildable_types = action_obj_params.getBuildableTypes();
481 
482  // See if the current Moose Object syntax belongs under this Action's block
483  if ((buildable_types.empty() || // Not restricted
484  std::find(buildable_types.begin(), buildable_types.end(), moose_obj_name) !=
485  buildable_types.end()) && // Restricted but found
486  moose_obj_params.hasBase() && // Has a registered base
487  _syntax.verifyMooseObjectTask(moose_obj_params.getBase(),
488  task) && // and that base is associated
489  action_obj_params.mooseObjectSyntaxVisibility() // and the Action says it's visible
490  )
491  {
492  std::string name;
493  size_t pos = 0;
494  bool is_action_params = false;
495  bool is_type = false;
496  if (syntax[syntax.size() - 1] == '*')
497  {
498  pos = syntax.size();
499 
500  if (!action_obj_params.collapseSyntaxNesting())
501  name = syntax.substr(0, pos - 1) + moose_obj_name;
502  else
503  {
504  name = syntax.substr(0, pos - 1) + "/<type>/" + moose_obj_name;
505  is_action_params = true;
506  }
507  }
508  else
509  {
510  name = syntax + "/<type>/" + moose_obj_name;
511  is_type = true;
512  }
513  moose_obj_params.set<std::string>("type") = moose_obj_name;
514 
515  auto lineinfo = _factory.getLineInfo(moose_obj_name);
516  std::string classname = _factory.associatedClassName(moose_obj_name);
517  root.addParameters(syntax,
518  name,
519  is_type,
520  moose_obj_name,
521  is_action_params,
522  &moose_obj_params,
523  lineinfo,
524  classname);
525  }
526  }
527 
528  // Same thing for ActionComponents, which, while they are not MooseObjects, should behave
529  // similarly syntax-wise
530  if (syntax != "ActionComponents/*")
531  continue;
532 
533  auto iters = _action_factory.getActionsByTask("list_component");
534 
535  for (auto it = iters.first; it != iters.second; ++it)
536  {
537  // Get the name and parameters
538  const auto component_name = it->second;
539  auto component_params = _action_factory.getValidParams(component_name);
540 
541  // We currently do not have build-type restrictions on this action that adds
542  // action-components
543 
544  // See if the current Moose Object syntax belongs under this Action's block
545  if (action_obj_params.mooseObjectSyntaxVisibility() // and the Action says it's visible
546  )
547  {
548  // The logic for Components is a little simpler here for now because syntax like
549  // Executioner/TimeIntegrator/type= do not exist for components
550  std::string name;
551  if (syntax[syntax.size() - 1] == '*')
552  {
553  size_t pos = syntax.size();
554  name = syntax.substr(0, pos - 1) + component_name;
555  }
556  component_params.set<std::string>("type") = component_name;
557 
558  auto lineinfo = _action_factory.getLineInfo(component_name, "list_component");
559  // We add the parameters as for an object, because we want to fit them to be
560  // added to json["AddActionComponentAction"]["subblock_types"]
561  root.addParameters(syntax,
562  /*syntax_path*/ name,
563  /*is_type*/ false,
564  "AddActionComponentAction",
565  /*is_action=*/false,
566  &component_params,
567  lineinfo,
568  component_name);
569  }
570  }
571  }
572  }
573  root.addGlobal();
574 }
std::string name(const ElemQuality q)
ActionFactory & _action_factory
The Factory that builds actions.
Definition: Builder.h:139
const std::multimap< std::string, std::string > & getAssociatedTypes() const
Get a multimap of registered associations of syntax with type.
Definition: Syntax.C:368
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition: KokkosUtils.h:40
const std::multimap< std::string, ActionInfo > & getAssociatedActions() const
Return all Syntax to Action associations.
Definition: Syntax.C:374
MPI_Info info
void mooseObjectSyntaxVisibility(bool visibility)
Mutators for controlling whether or not the outermost level of syntax will be collapsed when printed...
InputParameters getValidParams(const std::string &name)
Definition: ActionFactory.C:94
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
std::string associatedClassName(const std::string &name) const
Get the associated class name for an object name.
Definition: Factory.C:296
std::pair< std::multimap< std::string, std::string >::const_iterator, std::multimap< std::string, std::string >::const_iterator > getActionsByTask(const std::string &task) const
Returns begin and end iterators in a multimap from tasks to actions names.
std::set< std::string > getTasksByAction(const std::string &action) const
const std::vector< std::string > & getBuildableTypes() const
Returns the list of buildable types as a std::vector<std::string>
FileLineInfo getLineInfo(const std::string &syntax, const std::string &action, const std::string &task) const
Gets the file and line where the syntax/action/task combo was registered.
Definition: Syntax.C:380
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
FileLineInfo getLineInfo(const std::string &name, const std::string &task) const
Gets file and line information where an action was registered.
std::string _action
Definition: Syntax.h:26
FileLineInfo getLineInfo(const std::string &name) const
Gets file and line information where an object was initially registered.
Definition: Factory.C:284
const auto & registeredObjects() const
Returns a reference to the map from names to RegistryEntryBase pointers.
Definition: Factory.h:147
std::string getTaskName(const std::string &action)
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
std::string _task
Definition: Syntax.h:27
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
bool verifyMooseObjectTask(const std::string &base, const std::string &task) const
Returns a Boolean indicating whether a task is associated with on of the MOOSE pluggable systems (BAS...
Definition: Syntax.C:334
Factory & _factory
The Factory associated with that MooseApp.
Definition: Builder.h:135
void collapseSyntaxNesting(bool collapse)
Mutators for controlling whether or not the outermost level of syntax will be collapsed when printed...

◆ errorCheck()

void Moose::Builder::errorCheck ( const libMesh::Parallel::Communicator comm,
bool  warn_unused,
bool  err_unused 
)

Definition at line 358 of file Builder.C.

Referenced by MeshOnlyAction::act(), and MooseApp::errorCheck().

359 {
360  // Nothing to do here
361  if (!warn_unused && !err_unused)
362  return;
363 
364  std::vector<hit::ErrorMessage> messages;
365 
367  {
368  UnusedWalker uw(_extracted_vars, *this);
369  _parser.getCommandLineRoot().walk(&uw);
370  Parser::appendErrorMessages(messages, uw.errors);
371  }
372 
373  {
374  UnusedWalker uw(_extracted_vars, *this);
375  _root.walk(&uw);
376  Parser::appendErrorMessages(messages, uw.errors);
377  }
378 
379  for (const auto & arg : _app.commandLine()->unusedHitParams(comm))
380  messages.emplace_back("unused command line parameter '" + arg + "'");
381 
382  if (messages.size())
383  {
384  const auto message = _parser.joinErrorMessages(messages);
385  if (warn_unused)
386  mooseUnused(message);
387  if (err_unused)
388  {
389  if (_parser.getThrowOnError())
390  _parser.parseError(messages);
391  else
392  mooseError(
393  message +
394  "\n\nAppend --allow-unused (or -w) on the command line to ignore unused parameters.");
395  }
396  }
397 }
MooseApp & _app
The MooseApp this Parser is part of.
Definition: Builder.h:133
const hit::Node * queryCommandLineRoot() const
Definition: Parser.h:138
void parseError(std::vector< hit::ErrorMessage > messages) const
Helper for throwing an error with the given messages.
Definition: Parser.C:493
Parser & _parser
The front parser.
Definition: Builder.h:143
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:311
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition: MooseApp.h:423
static void appendErrorMessages(std::vector< hit::ErrorMessage > &to, const std::vector< hit::ErrorMessage > &from)
Helper for accumulating errors from a walker into an accumulation of errors.
Definition: Parser.C:471
hit::Node & _root
The root node from the Parser.
Definition: Builder.h:145
std::set< std::string > _extracted_vars
The set of all variables extracted from the input file.
Definition: Builder.h:151
static std::string joinErrorMessages(const std::vector< hit::ErrorMessage > &error_messages)
Helper for combining error messages into a single, newline separated message.
Definition: Parser.C:484
void mooseUnused(Args &&... args)
Warning message used to notify the users of unused parts of their input files Really used internally ...
Definition: MooseError.h:354
bool getThrowOnError() const
Definition: Parser.h:199
const hit::Node & getCommandLineRoot() const
Definition: Parser.C:457

◆ extractParams() [1/2]

void Moose::Builder::extractParams ( const hit::Node *const  section_node,
InputParameters p 
)

Attempt to extract values from input starting with the section in input in section_node based on the contents of the passed InputParameters p.

If section_node is not provided, only the global parameters will be checked

Definition at line 664 of file Builder.C.

Referenced by CreateProblemDefaultAction::act(), SetupMeshAction::act(), extractParams(), and walkRaw().

665 {
666  if (section_node)
667  mooseAssert(section_node->type() == hit::NodeType::Section, "Node type should be a section");
668 
669  for (const auto & [name, par_unique_ptr] : p)
670  {
671  if (p.shouldIgnore(name))
672  continue;
673 
674  const hit::Node * param_node = nullptr;
675 
676  for (const auto & param_name : p.paramAliases(name))
677  {
678  // Check for parameters under the given section, if a section
679  // node was provided
680  if (section_node)
681  {
682  if (const auto section_param_node = section_node->find(param_name);
683  section_param_node && section_param_node->type() == hit::NodeType::Field &&
684  section_param_node->parent() == section_node)
685  param_node = section_param_node;
686  }
687  // No node found within the given section, check [GlobalParams]
688  if (!param_node && queryGlobalParamsNode())
689  {
690  if (const auto global_node = queryGlobalParamsNode()->find(param_name);
691  global_node && global_node->type() == hit::NodeType::Field &&
692  global_node->parent() == queryGlobalParamsNode())
693  {
694  mooseAssert(isGlobal(*global_node), "Could not detect global-ness");
695  param_node = global_node;
696  }
697  }
698 
699  // Found it
700  if (param_node)
701  {
702  const auto fullpath = param_node->fullpath();
703  p.setHitNode(param_name, *param_node, {});
704  p.set_attributes(param_name, false);
705  _extracted_vars.insert(fullpath);
706 
707  const auto global = isGlobal(*param_node);
708 
709  // Check for deprecated parameters if the parameter is not a global param
710  if (!global)
711  if (const auto deprecated_message = p.queryDeprecatedParamMessage(param_name))
712  {
713  std::string key = "";
714  if (const auto object_type_ptr = p.queryObjectType())
715  key += *object_type_ptr + "_";
716  key += param_name;
717  _deprecated_params.emplace(key, *deprecated_message);
718  }
719 
720  // Private parameter, don't set
721  if (p.isPrivate(param_name))
722  {
723  // Error if it isn't global, just once
724  if (!global && std::find_if(_errors.begin(),
725  _errors.end(),
726  [&param_node](const auto & err)
727  { return err.node == param_node; }) == _errors.end())
728  _errors.emplace_back("parameter '" + fullpath + "' is private and cannot be set",
729  param_node);
730  continue;
731  }
732 
733  // Set the value, capturing errors
734  const auto param_field = dynamic_cast<const hit::Field *>(param_node);
735  mooseAssert(param_field, "Is not a field");
736  bool set_param = false;
737  try
738  {
739  ParameterRegistry::get().set(*par_unique_ptr, *param_field);
740  set_param = true;
741  }
742  catch (hit::Error & e)
743  {
744  _errors.emplace_back(e.message, param_node);
745  }
746  catch (std::exception & e)
747  {
748  _errors.emplace_back(e.what(), param_node);
749  }
750 
751  // Break if we failed here and don't perform extra checks
752  if (!set_param)
753  break;
754 
755  // Special setup for vector<VariableName>
756  if (auto cast_par = dynamic_cast<InputParameters::Parameter<std::vector<VariableName>> *>(
757  par_unique_ptr.get()))
758  if (const auto error = p.setupVariableNames(cast_par->set(), *param_node, {}))
759  _errors.emplace_back(*error, param_node);
760 
761  // Possibly perform a range check if this parameter has one
762  if (p.isRangeChecked(param_node->path()))
763  if (const auto error = p.parameterRangeCheck(
764  *par_unique_ptr, param_node->fullpath(), param_node->path(), true))
765  _errors.emplace_back(error->second, param_node);
766 
767  // Don't check the other alises since we've found it
768  break;
769  }
770  }
771 
772  // Special casing when the parameter was not found
773  if (!param_node)
774  {
775  // In the case where we have OutFileName but it wasn't actually found in the input filename,
776  // we will populate it with the actual parsed filename which is available here in the
777  // parser.
778  if (auto out_par_ptr =
779  dynamic_cast<InputParameters::Parameter<OutFileBase> *>(par_unique_ptr.get()))
780  {
781  const auto input_file_name = getPrimaryFileName();
782  mooseAssert(input_file_name.size(), "Input Filename is empty");
783  const auto pos = input_file_name.find_last_of('.');
784  mooseAssert(pos != std::string::npos, "Unable to determine suffix of input file name");
785  out_par_ptr->set() = input_file_name.substr(0, pos) + "_out";
786  p.set_attributes(name, false);
787  }
788  }
789  }
790 
791  // See if there are any auto build vectors that need to be created
792  for (const auto & [param_name, base_name_num_repeat_pair] : p.getAutoBuildVectors())
793  {
794  const auto & [base_name, num_repeat] = base_name_num_repeat_pair;
795  // We'll autogenerate values iff the requested vector is not valid but both the base and
796  // number are valid
797  if (!p.isParamValid(param_name) && p.isParamValid(base_name) && p.isParamValid(num_repeat))
798  {
799  const auto vec_size = p.get<unsigned int>(num_repeat);
800  const std::string & name = p.get<std::string>(base_name);
801 
802  std::vector<VariableName> variable_names(vec_size);
803  for (const auto i : index_range(variable_names))
804  {
805  std::ostringstream oss;
806  oss << name << i;
807  variable_names[i] = oss.str();
808  }
809 
810  // Finally set the autogenerated vector into the InputParameters object
811  p.set<std::vector<VariableName>>(param_name) = variable_names;
812  }
813  }
814 }
std::string name(const ElemQuality q)
OStreamProxy err
void set(libMesh::Parameters::Value &value, const hit::Field &field) const
Sets a parameter value given a hit field.
std::set< std::string > _extracted_vars
The set of all variables extracted from the input file.
Definition: Builder.h:151
std::string getPrimaryFileName(bool stripLeadingPath=true) const
Return the primary (first) filename that was parsed.
Definition: Builder.C:179
bool isGlobal(const hit::Node &node) const
Definition: Builder.C:824
std::vector< hit::ErrorMessage > _errors
The errors accumulated during the walk.
Definition: Builder.h:157
std::map< std::string, std::string > _deprecated_params
Deprecation warnings (object type/param name) -> (message)
Definition: Builder.h:160
const hit::Node * queryGlobalParamsNode() const
Get the [GlobalParams] section node if it exists.
Definition: Builder.C:831
auto index_range(const T &sizable)
static ParameterRegistry & get()
Get the singleton registry.

◆ extractParams() [2/2]

void Moose::Builder::extractParams ( const std::string &  prefix,
InputParameters p 
)

Attempt to extract values from input starting with the section in input defined by the fullpath prefix based on the contents of the passed InputParameters p.

Definition at line 817 of file Builder.C.

818 {
819  const auto node = _root.find(prefix);
820  extractParams((node && node->type() == hit::NodeType::Section) ? node : nullptr, p);
821 }
void extractParams(const hit::Node *const section_node, InputParameters &p)
Attempt to extract values from input starting with the section in input in section_node based on the ...
Definition: Builder.C:664
hit::Node & _root
The root node from the Parser.
Definition: Builder.h:145

◆ getPrimaryFileName()

std::string Moose::Builder::getPrimaryFileName ( bool  stripLeadingPath = true) const

Return the primary (first) filename that was parsed.

Definition at line 179 of file Builder.C.

Referenced by MeshOnlyAction::act(), extractParams(), and MooseApp::getFileName().

180 {
181  const auto path = _parser.getLastInputFilePath();
182  return (strip_leading_path ? path.filename() : std::filesystem::absolute(path)).string();
183 }
Parser & _parser
The front parser.
Definition: Builder.h:143
std::filesystem::path getLastInputFilePath() const
Definition: Parser.h:185

◆ initSyntaxFormatter()

void Moose::Builder::initSyntaxFormatter ( SyntaxFormatterType  type,
bool  dump_mode 
)

Creates a syntax formatter for printing.

Definition at line 400 of file Builder.C.

Referenced by MooseApp::setupOptions().

401 {
402  switch (type)
403  {
404  case INPUT_FILE:
405  _syntax_formatter = std::make_unique<InputFileFormatter>(dump_mode);
406  break;
407  case YAML:
408  _syntax_formatter = std::make_unique<YAMLFormatter>(dump_mode);
409  break;
410  default:
411  mooseError("Unrecognized Syntax Formatter requested");
412  break;
413  }
414 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:311
std::unique_ptr< SyntaxTree > _syntax_formatter
Object for holding the syntax parse tree.
Definition: Builder.h:148

◆ isGlobal()

bool Moose::Builder::isGlobal ( const hit::Node &  node) const
private
Returns
Whether or not the given node node exists within the [GlobalParams] block

Definition at line 824 of file Builder.C.

Referenced by extractParams().

825 {
826  const auto global_params_node = queryGlobalParamsNode();
827  return global_params_node && node.parent() == global_params_node;
828 }
const hit::Node * queryGlobalParamsNode() const
Get the [GlobalParams] section node if it exists.
Definition: Builder.C:831

◆ listValidParams()

std::vector< std::string > Moose::Builder::listValidParams ( std::string &  section_name)

Definition at line 142 of file Builder.C.

Referenced by Moose::UnusedWalker::walk().

143 {
144  bool dummy;
145  std::string registered_identifier = _syntax.isAssociated(section_name, &dummy);
146  auto iters = _syntax.getActions(registered_identifier);
147 
148  std::vector<std::string> paramlist;
149  for (auto it = iters.first; it != iters.second; ++it)
150  {
151  auto params = _action_factory.getValidParams(it->second._action);
152  for (const auto & it : params)
153  paramlist.push_back(it.first);
154  }
155  return paramlist;
156 }
ActionFactory & _action_factory
The Factory that builds actions.
Definition: Builder.h:139
std::pair< std::multimap< std::string, ActionInfo >::const_iterator, std::multimap< std::string, ActionInfo >::const_iterator > getActions(const std::string &syntax) const
Returns a pair of multimap iterators to all the ActionInfo objects associated with a given piece of s...
Definition: Syntax.C:328
InputParameters getValidParams(const std::string &name)
Definition: ActionFactory.C:94
std::string isAssociated(const std::string &real_id, bool *is_parent, const std::map< std::string, std::set< std::string >> &alt_map={}) const
Method for determining whether a piece of syntax is associated with an Action an optional syntax map ...
Definition: Syntax.C:251
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141

◆ queryGlobalParamsNode()

const hit::Node * Moose::Builder::queryGlobalParamsNode ( ) const
private

Get the [GlobalParams] section node if it exists.

We need to separate this so that we can call extractParams() before calling build()

Definition at line 831 of file Builder.C.

Referenced by extractParams(), and isGlobal().

832 {
833  if (!_global_params_node)
834  {
835  const auto syntax = _syntax.getSyntaxByAction("GlobalParamsAction");
836  mooseAssert(syntax.size() == 1, "Unexpected GlobalParamsAction syntax size");
837  _global_params_node = _root.find(syntax.front());
838  }
839  return *_global_params_node;
840 }
std::vector< std::string > getSyntaxByAction(const std::string &action, const std::string &task="")
Retrieve the syntax associated with the passed in action type string.
Definition: Syntax.C:211
hit::Node & _root
The root node from the Parser.
Definition: Builder.h:145
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
std::optional< const hit::Node * > _global_params_node
The hit Node for the [GlobalParams] block, if any If set (could be null), it means we have searched f...
Definition: Builder.h:164

◆ validParams()

InputParameters Moose::Builder::validParams ( )
static

Parameters that are processed directly by the Parser and are valid anywhere in the input.

Add the "active" and "inactive" parameters so that all blocks in the input file can selectively create lists of active/inactive sub-blocks.

Definition at line 121 of file Builder.C.

Referenced by JsonSyntaxTree::addGlobal(), MooseServer::getAllValidParameters(), and Action::validParams().

122 {
124 
129  params.addParam<std::vector<std::string>>(
130  "active",
131  std::vector<std::string>({"__all__"}),
132  "If specified only the blocks named will be visited and made active");
133  params.addParam<std::vector<std::string>>(
134  "inactive",
135  std::vector<std::string>(),
136  "If specified blocks matching these identifiers will be skipped.");
137 
138  return params;
139 }
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
InputParameters emptyInputParameters()
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...

◆ walk()

void Moose::Builder::walk ( const std::string &  fullpath,
const std::string &  nodepath,
hit::Node *  n 
)

Definition at line 289 of file Builder.C.

290 {
291  // skip sections that were manually processed first.
292  if (std::find(_secs_need_first.begin(), _secs_need_first.end(), nodepath) !=
293  _secs_need_first.end())
294  return;
295 
296  walkRaw(fullpath, nodepath, n);
297 }
KOKKOS_INLINE_FUNCTION const T * find(const T &target, const T *const begin, const T *const end)
Find a value in an array.
Definition: KokkosUtils.h:40
void walkRaw(std::string fullpath, std::string nodepath, hit::Node *n)
Definition: Builder.C:186
std::vector< std::string > _secs_need_first
The sections that we need to execute first (read during the final walk)
Definition: Builder.h:154

◆ walkRaw()

void Moose::Builder::walkRaw ( std::string  fullpath,
std::string  nodepath,
hit::Node *  n 
)
private

Definition at line 186 of file Builder.C.

Referenced by build(), and walk().

187 {
188  InputParameters active_list_params = Action::validParams();
190 
191  const std::string section_name = n->fullpath();
192  const std::string curr_identifier = n->fullpath();
193 
194  // Before we retrieve any actions or build any objects, make sure that the section they are in
195  // is active
196  if (!isSectionActive(*n))
197  return;
198 
199  // Extract the block parameters before constructing the action
200  // There may be more than one Action registered for a given section in which case we need to
201  // build them all
202  bool is_parent;
203  std::string registered_identifier = _syntax.isAssociated(section_name, &is_parent);
204 
205  // Make sure at least one action is associated with the current identifier
206  if (const auto [begin, end] = _syntax.getActions(registered_identifier); begin == end)
207  {
208  _errors.emplace_back(
209  "section '[" + curr_identifier +
210  "]' does not have an associated Action; you likely misspelled the Action/section name "
211  "or the app you are running does not support this Action/syntax",
212  n);
213  return;
214  }
215 
216  // The DynamicObjecRegistrationAction changes the action multimap and would invalidate the
217  // iterators returned by _syntax.getActions, that's why we have to loop in this awkward way.
218  std::set<const Syntax::ActionInfo *> processed_actions;
219  while (true)
220  {
221  // search for an unprocessed action
222  auto [begin, end] = _syntax.getActions(registered_identifier);
223  auto it = begin;
224  for (; it != end && processed_actions.count(&it->second); ++it)
225  ;
226 
227  // no more unprocessed actions
228  if (it == end)
229  break;
230 
231  // mark action as processed
232  processed_actions.insert(&it->second);
233 
234  if (is_parent)
235  continue;
236  if (_syntax.isDeprecatedSyntax(registered_identifier))
238  hit::errormsg(n, _syntax.deprecatedActionSyntaxMessage(registered_identifier)));
239 
240  params = _action_factory.getValidParams(it->second._action);
241  params.set<ActionWarehouse *>("awh") = &_action_wh;
242  params.setHitNode(*n, {});
243 
244  extractParams(n, params);
245 
246  // Add the parsed syntax to the parameters object for consumption by the Action
247  params.set<std::string>("task") = it->second._task;
248  params.set<std::string>("registered_identifier") = registered_identifier;
249 
250  if (!(params.have_parameter<bool>("isObjectAction") && params.get<bool>("isObjectAction")))
251  params.set<std::vector<std::string>>("control_tags")
252  .push_back(MooseUtils::baseName(curr_identifier));
253 
254  // Create the Action
255  std::shared_ptr<Action> action_obj =
256  _action_factory.create(it->second._action, curr_identifier, params);
257 
258  {
259  // extract the MooseObject params if necessary
260  std::shared_ptr<MooseObjectAction> object_action =
262  if (object_action)
263  {
264  auto & object_params = object_action->getObjectParams();
265  object_params.setHitNode(*n, {});
266  extractParams(n, object_params);
267  object_params.set<std::vector<std::string>>("control_tags")
268  .push_back(MooseUtils::baseName(curr_identifier));
269  }
270  // extract the Component params if necessary
271  std::shared_ptr<AddActionComponentAction> component_action =
273  if (component_action)
274  {
275  auto & component_params = component_action->getComponentParams();
276  component_params.setHitNode(*n, {});
277  extractParams(n, component_params);
278  component_params.set<std::vector<std::string>>("control_tags")
279  .push_back(MooseUtils::baseName(curr_identifier));
280  }
281  }
282 
283  // add it to the warehouse
284  _action_wh.addActionBlock(action_obj);
285  }
286 }
ActionFactory & _action_factory
The Factory that builds actions.
Definition: Builder.h:139
std::pair< std::multimap< std::string, ActionInfo >::const_iterator, std::multimap< std::string, ActionInfo >::const_iterator > getActions(const std::string &syntax) const
Returns a pair of multimap iterators to all the ActionInfo objects associated with a given piece of s...
Definition: Syntax.C:328
InputParameters & getComponentParams()
Return the parameters of the component.
InputParameters getValidParams(const std::string &name)
Definition: ActionFactory.C:94
std::vector< std::pair< R1, R2 > > get(const std::string &param1, const std::string &param2) const
Combine two vector parameters into a single vector of pairs.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
Storage for action instances.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void addActionBlock(std::shared_ptr< Action > blk)
This method add an Action instance to the warehouse.
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
Action for creating component actions.
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
Definition: ActionFactory.C:40
void extractParams(const hit::Node *const section_node, InputParameters &p)
Attempt to extract values from input starting with the section in input in section_node based on the ...
Definition: Builder.C:664
bool isDeprecatedSyntax(const std::string &syntax) const
Returns a Boolean indicating whether the syntax has been deprecated through a call to deprecateAction...
Definition: Syntax.C:205
static InputParameters validParams()
Definition: Action.C:26
InputParameters & getObjectParams()
Retrieve the parameters of the object to be created by this action.
static InputParameters validParams()
Definition: EmptyAction.C:19
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:363
std::vector< hit::ErrorMessage > _errors
The errors accumulated during the walk.
Definition: Builder.h:157
std::string isAssociated(const std::string &real_id, bool *is_parent, const std::map< std::string, std::set< std::string >> &alt_map={}) const
Method for determining whether a piece of syntax is associated with an Action an optional syntax map ...
Definition: Syntax.C:251
bool have_parameter(std::string_view name) const
A wrapper around the Parameters base class method.
std::string baseName(const std::string &name)
Definition: MooseUtils.C:618
Syntax & _syntax
Reference to an object that defines input file syntax.
Definition: Builder.h:141
void setHitNode(const std::string &param, const hit::Node &node, const SetParamHitNodeKey)
Sets the hit node associated with the parameter param to node.
ActionWarehouse & _action_wh
Action warehouse that will be filled by actions.
Definition: Builder.h:137
std::string deprecatedActionSyntaxMessage(const std::string syntax)
Returns the deprecation message for a given syntax that has been deprecated by deprecateActionSyntax...
Definition: Syntax.C:194
bool isSectionActive(const hit::Node &node)
Definition: Builder.C:45

Member Data Documentation

◆ _action_factory

ActionFactory& Moose::Builder::_action_factory
private

The Factory that builds actions.

Definition at line 139 of file Builder.h.

Referenced by buildFullTree(), buildJsonSyntaxTree(), listValidParams(), and walkRaw().

◆ _action_wh

ActionWarehouse& Moose::Builder::_action_wh
private

Action warehouse that will be filled by actions.

Definition at line 137 of file Builder.h.

Referenced by walkRaw().

◆ _app

MooseApp& Moose::Builder::_app
private

The MooseApp this Parser is part of.

Definition at line 133 of file Builder.h.

Referenced by errorCheck().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 31 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), MeshOnlyAction::act(), SetupDebugAction::act(), MaterialOutputAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), PerfGraph::addToExecutionList(), SimplePredictor::apply(), SystemBase::applyScalingFactors(), MultiApp::backup(), FEProblemBase::backupMultiApps(), CoarsenedPiecewiseLinear::buildCoarsenedGrid(), DefaultSteadyStateConvergence::checkConvergence(), MeshDiagnosticsGenerator::checkElementOverlap(), MeshDiagnosticsGenerator::checkElementTypes(), MeshDiagnosticsGenerator::checkElementVolumes(), FEProblemBase::checkExceptionAndStopSolve(), SolverSystem::checkInvalidSolution(), MeshDiagnosticsGenerator::checkLocalJacobians(), MeshDiagnosticsGenerator::checkNonConformalMesh(), MeshDiagnosticsGenerator::checkNonConformalMeshFromAdaptivity(), MeshDiagnosticsGenerator::checkNonMatchingEdges(), MeshDiagnosticsGenerator::checkNonPlanarSides(), MeshDiagnosticsGenerator::checkPolygons(), FEProblemBase::checkProblemIntegrity(), ReferenceResidualConvergence::checkRelativeConvergence(), MeshDiagnosticsGenerator::checkSidesetsOrientation(), MeshDiagnosticsGenerator::checkWatertightNodesets(), MeshDiagnosticsGenerator::checkWatertightSidesets(), IterationAdaptiveDT::computeAdaptiveDT(), TransientBase::computeConstrainedDT(), DefaultMultiAppFixedPointConvergence::computeCustomConvergencePostprocessor(), NonlinearSystemBase::computeDamping(), FixedPointIterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInitialDT(), IterationAdaptiveDT::computeInterpolationDT(), LinearSystem::computeLinearSystemTags(), FEProblemBase::computeLinearSystemTags(), NonlinearSystemBase::computeScaling(), Problem::console(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MFEMSteady::execute(), MessageFromInput::execute(), SteadyBase::execute(), Eigenvalue::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), MeshGeneratorSystem::executeMeshGenerators(), ElementQualityChecker::finalize(), SidesetAroundSubdomainUpdater::finalize(), FEProblemBase::finishMultiAppStep(), MeshRepairGenerator::fixOverlappingNodes(), SurfaceSubdomainsDelaunayRemesher::General2DDelaunay(), OrientSurfaceMeshGenerator::generate(), CoarsenBlockGenerator::generate(), PolyLineMeshFollowingNodeSetGenerator::generate(), MeshGenerator::generateInternal(), VariableCondensationPreconditioner::getDofToCondense(), InversePowerMethod::init(), NonlinearEigen::init(), FEProblemBase::initialAdaptMesh(), DefaultMultiAppFixedPointConvergence::initialize(), SubProblem::initialSetup(), EigenExecutionerBase::inversePowerIteration(), FEProblemBase::joinAndFinalize(), TransientBase::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), FEProblemBase::logAdd(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), SurfaceDelaunayGeneratorBase::meshNormalDeviation2D(), MooseBase::mooseDeprecated(), MooseBase::mooseDeprecatedNoTrace(), MooseBase::mooseInfo(), MooseBase::mooseWarning(), MooseBase::mooseWarningNonPrefixed(), ReferenceResidualConvergence::nonlinearConvergenceSetup(), ReporterDebugOutput::output(), PerfGraphOutput::output(), SolutionInvalidityOutput::output(), MaterialPropertyDebugOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), WebServerControl::outputMessage(), Console::outputPostprocessors(), PseudoTimestep::outputPseudoTimestep(), Console::outputReporters(), DefaultMultiAppFixedPointConvergence::outputResidualNorm(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), BlockRestrictionDebugOutput::printBlockRestrictionMap(), SolutionInvalidity::printDebug(), EigenExecutionerBase::printEigenvalue(), SecantSolve::printFixedPointConvergenceHistory(), SteffensenSolve::printFixedPointConvergenceHistory(), PicardSolve::printFixedPointConvergenceHistory(), FixedPointSolve::printFixedPointConvergenceReason(), PerfGraphLivePrint::printLiveMessage(), MaterialPropertyDebugOutput::printMaterialMap(), PerfGraphLivePrint::printStats(), NEML2Action::printSummary(), AutomaticMortarGeneration::projectPrimaryNodesSinglePair(), AutomaticMortarGeneration::projectSecondaryNodesSinglePair(), CoarsenBlockGenerator::recursiveCoarsen(), SolutionTimeAdaptiveDT::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), FEProblemBase::restoreSolutions(), NonlinearSystemBase::setInitialSolution(), MooseApp::setupOptions(), Checkpoint::shouldOutput(), SubProblem::showFunctorRequestors(), SubProblem::showFunctors(), FullSolveMultiApp::showStatusMessage(), EigenProblem::solve(), FEProblemSolve::solve(), FixedPointSolve::solve(), NonlinearSystem::solve(), LinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), FixedPointSolve::solveStep(), MeshRepairGenerator::splitNonConvexPolygons(), PerfGraphLivePrint::start(), WebServerControl::startServer(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), MFEMTransient::takeStep(), TransientBase::takeStep(), TerminateChainControl::terminate(), SubProblem::timestepSetup(), FEProblemBase::updateMeshXFEM(), Convergence::verboseOutput(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _deprecated_params

std::map<std::string, std::string> Moose::Builder::_deprecated_params
private

Deprecation warnings (object type/param name) -> (message)

Definition at line 160 of file Builder.h.

Referenced by build(), and extractParams().

◆ _errors

std::vector<hit::ErrorMessage> Moose::Builder::_errors
private

The errors accumulated during the walk.

Definition at line 157 of file Builder.h.

Referenced by build(), extractParams(), and walkRaw().

◆ _extracted_vars

std::set<std::string> Moose::Builder::_extracted_vars
private

The set of all variables extracted from the input file.

Definition at line 151 of file Builder.h.

Referenced by build(), errorCheck(), and extractParams().

◆ _factory

Factory& Moose::Builder::_factory
private

The Factory associated with that MooseApp.

Definition at line 135 of file Builder.h.

Referenced by buildFullTree(), and buildJsonSyntaxTree().

◆ _global_params_node

std::optional<const hit::Node *> Moose::Builder::_global_params_node
mutableprivate

The hit Node for the [GlobalParams] block, if any If set (could be null), it means we have searched for it.

Definition at line 164 of file Builder.h.

Referenced by queryGlobalParamsNode().

◆ _parser

Parser& Moose::Builder::_parser
private

The front parser.

Definition at line 143 of file Builder.h.

Referenced by build(), errorCheck(), and getPrimaryFileName().

◆ _root

hit::Node& Moose::Builder::_root
private

The root node from the Parser.

Definition at line 145 of file Builder.h.

Referenced by build(), errorCheck(), extractParams(), and queryGlobalParamsNode().

◆ _secs_need_first

std::vector<std::string> Moose::Builder::_secs_need_first
private

The sections that we need to execute first (read during the final walk)

Definition at line 154 of file Builder.h.

Referenced by build(), and walk().

◆ _syntax

Syntax& Moose::Builder::_syntax
private

Reference to an object that defines input file syntax.

Definition at line 141 of file Builder.h.

Referenced by build(), buildFullTree(), buildJsonSyntaxTree(), listValidParams(), queryGlobalParamsNode(), and walkRaw().

◆ _syntax_formatter

std::unique_ptr<SyntaxTree> Moose::Builder::_syntax_formatter
private

Object for holding the syntax parse tree.

Definition at line 148 of file Builder.h.

Referenced by buildFullTree(), and initSyntaxFormatter().


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