AppSyntax Extension

The AppSyntax Extension defines the !syntax markdown command, which contains various sub-commands for creating MOOSE specific links and tables within your markdown, each are explained below. Note, the examples below refer to documentation associated with Kernels and/or the Diffusion Kernel. This should be replaced by the syntax for the system or object being documented. The configuration options for the extension itself are listed in Table 1.

Table 1: Configuration options for the AppSyntax extension.

KeyDefaultDescription
activeTrueToggle for disabling the extension. This only changes the initial active state, use setActive to control at runtime.
executableNoneThe MOOSE application executable to use for generating syntax.
app_nameNoneThe MOOSE application name (e.g., moose_test); if not provided an attempt will be made to determine the name.
sources[]List of source directories to investigate for class information.
includes[]List of include directories to investigate for class information.
inputs[]List of directories to interrogate for input files using an object.
allow-test-objectsFalseEnable documentation for test objects.
hideNoneDEPRECATED
removeNoneList or Dictionary of lists of syntax to remove.
visible['required', 'optional']Parameter groups to show as un-collapsed.
aliasNoneDictionary of syntax aliases.
unregisterNoneA `dict` or `dict` of `dict` including syntax to unregister (key='moose_base', value='parent_syntax')
markdownNoneA `dict` or `dict` of `dict` including markdown files to explicitly set a custom, additional markdown reference (key='syntax', value='file.md')
external_iconfeedbackIcon name for the alert title when unavailable syntax is located on an external page.
external_alertwarningAlert name when unavailable syntax is located on an external page.

Class Description (!syntax description)

The description sub-command adds a paragraph with the content of InputParameters object class descriptions, which is added in the MOOSE application within the validParams method. The available settings are included in Table 2.

Table 2: Command settings for the !syntax description command.

KeyDefaultDescription
styleNoneThe style settings that are passed to rendered HTML tag.
classNoneThe class settings to be passed to rendered HTML tag.
idNoneThe class settings to be passed to the rendered tag.
syntaxNoneThe name of the syntax to extract. If the name of the syntax is the first item in the settings the 'syntax=' may be omitted, e.g., `!syntax parameters /Kernels/Diffusion`.

For example, the FileMesh object includes a validParams function as shown in Listing 1. Notice, that the addClassDescription method includes a short description of the object. To display this text the !syntax description command is used followed by the MOOSE input file syntax for the object as in Example 1.

Example 1: Example use of the !syntax description command.

!syntax description /Mesh/FileMesh style=color:green

Read a mesh from a file.

Listing 1: The validParams function from the FileMesh object.


#include "FileMesh.h"
#include "Parser.h"
#include "MooseUtils.h"
#include "Moose.h"
#include "MooseApp.h"
#include "FileMeshGenerator.h"

#include "libmesh/exodusII_io.h"
#include "libmesh/mesh_tools.h"
#include "libmesh/nemesis_io.h"
#include "libmesh/parallel_mesh.h"

registerMooseObject("MooseApp", FileMesh);

InputParameters
FileMesh::validParams()
{
  InputParameters params = MooseMesh::validParams();
  params.addRequiredParam<MeshFileName>("file", "The name of the mesh file to read");
  params.addParam<bool>("clear_spline_nodes",
                        false,
                        "If clear_spline_nodes=true, IsoGeometric Analyis spline nodes "
                        "and constraints are removed from an IGA mesh, after which only "
                        "C^0 Rational-Bernstein-Bezier elements will remain.");
  params.addClassDescription("Read a mesh from a file.");
  return params;
}
(framework/src/mesh/FileMesh.C)

Object Parameters (!syntax parameters)

The parameters sub-command provides a means for displaying the default input file syntax for an object as shown in Example 2. The available settings for the parameters command are shown in Table 3.

Table 3: Command settings for the !syntax parameters command.

KeyDefaultDescription
styleNoneThe style settings that are passed to rendered HTML tag.
classNoneThe class settings to be passed to rendered HTML tag.
idNoneThe class settings to be passed to the rendered tag.
syntaxNoneThe name of the syntax to extract. If the name of the syntax is the first item in the settings the 'syntax=' may be omitted, e.g., `!syntax parameters /Kernels/Diffusion`.
headingInput ParametersThe heading title for the input parameters table, use 'None' to remove the heading.
heading-level2Heading level for section title.
groupsNoneSpace separated list of groups, in desired order, to output.
hideNoneSpace separated list of parameters to remove from output.
showNoneSpace separated list of parameters to display in output.
visibleNoneSpace separated list of parameter groups to display with un-collapsed sections.

Example 2: Example use of the !syntax parameters command.

!syntax parameters /Dampers/ConstantDamper

Input Parameters

Required Parameters

  • dampingThe percentage (between 0 and 1) of the newton update to take.

    C++ Type:double

    Controllable:No

    Description:The percentage (between 0 and 1) of the newton update to take.

Optional Parameters

  • min_damping0Minimum value of computed damping. Damping lower than this will result in an exception being thrown and cutting the time step

    Default:0

    C++ Type:double

    Controllable:No

    Description:Minimum value of computed damping. Damping lower than this will result in an exception being thrown and cutting the time step

Advanced Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

Input Files (!syntax inputs)

In many cases it is useful to know where in the examples, tutorials, or tests an object is utilized in an input file. Therefore, inputs sub-command is defined. Example 3 lists all the input files that use include the ConstantDamper object and Table 4 provides the available settings for the inputs command.

Table 4: Command settings for the !syntax inputs command.

KeyDefaultDescription
styleNoneThe style settings that are passed to rendered HTML tag.
classNoneThe class settings to be passed to rendered HTML tag.
idNoneThe class settings to be passed to the rendered tag.
syntaxNoneThe name of the syntax to extract. If the name of the syntax is the first item in the settings the 'syntax=' may be omitted, e.g., `!syntax parameters /Kernels/Diffusion`.
headingInput FilesHeading to include for sections, use 'None' to remove the title.
heading-level2Heading level for section title.

Child Objects (!syntax children)

MOOSE is designed on the idea of inheritance, as such it is often useful to understand which classes inherit from another. The children sub-command creates a list of all child classes of the given object, as shown in Example 4. The available settings for the children command are provided below.

Table 5: Command settings for the !syntax children command.

KeyDefaultDescription
styleNoneThe style settings that are passed to rendered HTML tag.
classNoneThe class settings to be passed to rendered HTML tag.
idNoneThe class settings to be passed to the rendered tag.
syntaxNoneThe name of the syntax to extract. If the name of the syntax is the first item in the settings the 'syntax=' may be omitted, e.g., `!syntax parameters /Kernels/Diffusion`.
headingChild ObjectsHeading to include for sections, use 'None' to remove the title.
heading-level2Heading level for section title.

Actions, Objects, and Systems (!syntax list)

MOOSE is based on systems (e.g., Kernels), where each system contains a set of objects, actions, and subsystems that can be used within an input file block. It is desirable to list the available object for a given system, which is the reason behind the !syntax list command. The available settings for this command are included in Table 6.

Table 6: Command settings for the !syntax list command.

KeyDefaultDescription
styleNoneThe style settings that are passed to rendered HTML tag.
classNoneThe class settings to be passed to rendered HTML tag.
idNoneThe class settings to be passed to the rendered tag.
syntaxNoneThe name of the syntax to extract. If the name of the syntax is the first item in the settings the 'syntax=' may be omitted, e.g., `!syntax parameters /Kernels/Diffusion`.
headingAUTOThe heading title for the input parameters table, use 'None' to remove the heading.
heading-level2Heading level for section title.
group-headingsTrueDisplay group headings.
groupsNoneList of groups (apps) to include in the complete syntax list.
actionsTrueInclude a list of Action objects in syntax.
objectsTrueInclude a list of MooseObject objects in syntax.
subsystemsTrueInclude a list of sub system syntax in the output.

Example 5: Example use of the !syntax list command.

!syntax list /Adaptivity

Available Objects, Actions, and Subsystems

Complete Syntax List


!syntax complete level=3