- elem_filteractiveThe type of elements to include in the count (active, total). Default == active
Default:active
C++ Type:MooseEnum
Description:The type of elements to include in the count (active, total). Default == active
 - execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.
 
NumElems
The NumElems Postprocessor provides information about the number of elements in the simulation. This postprocessor is capable of providing either the active number of elements in the simulation (i.e. only the elements that are being used for calculations), or the total number of elements (i.e. includes parent elements of refined elements, which are maintained for the purpose of coarsening).
This postprocessor returns the aggregate number of elements when using DistributedMesh.
Syntax and Description
Return the number of active or total elements in the simulation.
Input Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Options:
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
 - control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
 - enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
 - force_preauxFalseForces the GeneralUserObject to be executed in PREAUX
Default:False
C++ Type:bool
Options:
Description:Forces the GeneralUserObject to be executed in PREAUX
 - force_preicFalseForces the GeneralUserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Options:
Description:Forces the GeneralUserObject to be executed in PREIC during initial setup
 - outputsVector of output names were you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Options:
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
 - use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Options:
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
 
Advanced Parameters
Input Files
- (test/tests/mesh/splitting/geometric_neighbors.i)
 - (modules/phase_field/examples/ebsd_reconstruction/IN100-111grn.i)
 - (test/tests/postprocessors/num_elems/num_elems.i)
 - (modules/xfem/test/tests/moment_fitting/solid_mechanics_moment_fitting.i)
 - (test/tests/postprocessors/linear_combination/linear_combination.i)
 - (modules/phase_field/examples/grain_growth/3D_6000_gr.i)
 - (test/tests/outputs/hide_vector_pp/hide_vector_pp.i)
 - (test/tests/postprocessors/difference_pps/difference_depend_check.i)
 - (modules/combined/examples/phase_field-mechanics/EBSD_reconstruction_grain_growth_mech.i)
 - (test/tests/postprocessors/num_residual_eval/num_residual_eval.i)
 - (modules/phase_field/test/tests/reconstruction/euler2rgb_non_uniform_orientation.i)
 - (test/tests/postprocessors/relative_difference/relative_difference.i)
 - (test/tests/outputs/perf_graph/perf_graph.i)
 - (modules/phase_field/test/tests/grain_tracker_test/split_grain.i)
 
References
(test/tests/mesh/splitting/geometric_neighbors.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 8
  ny = 2
  xmax = 8
  ymax = 2
  # We are testing geometric ghosted functors
  # so we have to use distributed mesh
  parallel_type = distributed
[]
[Variables]
  [./u]
  [../]
[]
[AuxVariables]
  [./ghosted_elements]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./proc]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[AuxKernels]
  [./random_elemental]
    type = ElementUOAux
    variable = ghosted_elements
    element_user_object = ghost_uo
    field_name = "ghosted"
    execute_on = initial
  [../]
  [./proc]
    type = ProcessorIDAux
    variable = proc
    execute_on = initial
  [../]
[]
[UserObjects]
  [./ghost_uo]
    type = ElemSideNeighborLayersGeomTester
    execute_on = initial
    element_side_neighbor_layers = 2
  [../]
[]
[Postprocessors]
  [./num_elems]
    type = NumElems
  [../]
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
[]
[Problem]
  solve = false
  kernel_coverage_check = false
[]
(modules/phase_field/examples/ebsd_reconstruction/IN100-111grn.i)
[Mesh]
  [ebsd_mesh]
    type = EBSDMeshGenerator
    filename = IN100_120x120.txt
    uniform_refine = 2
  []
[]
[GlobalParams]
  op_num = 8
  var_name_base = gr
[]
[UserObjects]
  [ebsd_reader]
    type = EBSDReader
  []
  [ebsd]
    type = PolycrystalEBSD
    coloring_algorithm = bt
    ebsd_reader = ebsd_reader
    enable_var_coloring = true
  []
  [grain_tracker]
    type = GrainTracker
    flood_entity_type = ELEMENTAL
    compute_halo_maps = true # For displaying HALO fields
    polycrystal_ic_uo = ebsd
  []
[]
[ICs]
  [PolycrystalICs]
    [PolycrystalColoringIC]
      polycrystal_ic_uo = ebsd
    []
  []
[]
[Variables]
  [PolycrystalVariables]
  []
[]
[AuxVariables]
  [bnds]
  []
  [unique_grains_ic]
    order = CONSTANT
    family = MONOMIAL
  []
  [unique_grains]
    order = CONSTANT
    family = MONOMIAL
  []
  [ghost_elements]
    order = CONSTANT
    family = MONOMIAL
  []
  [halos]
    order = CONSTANT
    family = MONOMIAL
  []
  [var_indices_ic]
    order = CONSTANT
    family = MONOMIAL
  []
  [var_indices]
    order = CONSTANT
    family = MONOMIAL
  []
  [ebsd_grains]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[Kernels]
  [PolycrystalKernel]
  []
[]
[AuxKernels]
  [BndsCalc]
    type = BndsCalcAux
    variable = bnds
    execute_on = 'initial timestep_end'
  []
  [ghost_elements]
    type = FeatureFloodCountAux
    variable = ghost_elements
    field_display = GHOSTED_ENTITIES
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  []
  [halos]
    type = FeatureFloodCountAux
    variable = halos
    field_display = HALOS
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  []
  [var_indices_ic]
    type = FeatureFloodCountAux
    variable = var_indices_ic
    execute_on = 'initial'
    flood_counter = ebsd
    field_display = VARIABLE_COLORING
  []
  [unique_grains_ic]
    type = FeatureFloodCountAux
    variable = unique_grains_ic
    execute_on = 'initial'
    flood_counter = ebsd
    field_display = UNIQUE_REGION
  []
  [var_indices]
    type = FeatureFloodCountAux
    variable = var_indices
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = VARIABLE_COLORING
  []
  [unique_grains]
    type = FeatureFloodCountAux
    variable = unique_grains
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = UNIQUE_REGION
  []
  [grain_aux]
    type = EBSDReaderPointDataAux
    variable = ebsd_grains
    ebsd_reader = ebsd_reader
    data_name = 'feature_id'
    execute_on = 'initial timestep_end'
  []
[]
[Modules]
  [PhaseField]
    [EulerAngles2RGB]
      crystal_structure = cubic
      euler_angle_provider = ebsd_reader
      grain_tracker = grain_tracker
    []
  []
[]
[Materials]
  [Copper]
    # T = 500 # K
    type = GBEvolution
    T = 500
    wGB = 0.6 # um
    GBmob0 = 2.5e-6 # m^4/(Js) from Schoenfelder 1997
    Q = 0.23 # Migration energy in eV
    GBenergy = 0.708 # GB energy in J/m^2
    molar_volume = 7.11e-6 # Molar volume in m^3/mol
    length_scale = 1.0e-6
    time_scale = 1.0e-6
  []
[]
[Postprocessors]
  [dt]
    type = TimestepSize
  []
  [n_elements]
    type = NumElems
    execute_on = 'initial timestep_end'
  []
  [n_nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  []
  [DOFs]
    type = NumDOFs
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold'
  petsc_options_value = 'hypre    boomeramg      0.7'
  l_tol = 1.0e-4
  l_max_its = 20
  nl_max_its = 20
  nl_rel_tol = 1.0e-8
  start_time = 0.0
  num_steps = 30
  [TimeStepper]
    type = IterationAdaptiveDT
    cutback_factor = 0.9
    dt = 10.0
    growth_factor = 1.1
    optimal_iterations = 7
  []
  [Adaptivity]
    initial_adaptivity = 2
    refine_fraction = 0.7
    coarsen_fraction = 0.1
    max_h_level = 2
  []
[]
[Outputs]
  exodus = true
  checkpoint = true
  perf_graph = true
[]
(test/tests/postprocessors/num_elems/num_elems.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 4
  ny = 4
  nz = 0
  zmax = 0
  elem_type = QUAD4
  uniform_refine = 1
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./u_aux]
    order = FIRST
    family = LAGRANGE
  [../]
  [./v_aux]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Functions]
  [./force]
    type = ParsedFunction
    value = t
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./force]
    type = BodyForce
    variable = u
    function = force
  [../]
[]
[BCs]
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  [../]
  [./left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 3
  dt = 1
  solve_type = PJFNK
[]
[Adaptivity]
  steps = 1
  marker = box
  max_h_level = 3
  [./Markers]
    [./box]
      bottom_left = '0.3 0.3 0'
      inside = refine
      top_right = '0.6 0.6 0'
      outside = do_nothing
      type = BoxMarker
    [../]
  [../]
[]
[Postprocessors]
  [./num_elems_active]
    type = NumElems
    elem_filter = 'ACTIVE'
    execute_on = 'initial timestep_end'
  [../]
  [./num_elems_total]
    type = NumElems
    elem_filter = 'TOTAL'
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  csv = true
[]
(modules/xfem/test/tests/moment_fitting/solid_mechanics_moment_fitting.i)
# Test for a mechanics problem which uses four points moment_fitting approach.
# See this paper (https://doi.org/10.1007/s00466-018-1544-2) for more details about moment_fitting approach.
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[XFEM]
  qrule = moment_fitting
  output_cut_plane = true
[]
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 10
  ny = 10
  xmin = 0.0
  xmax = 1.0
  ymin = 0.0
  ymax = 1.0
  elem_type = QUAD4
[]
[UserObjects]
  [./line_seg_cut_uo0]
    type = LineSegmentCutUserObject
    cut_data = '0.0000e+00   6.3330e-01   3.9000e-01   6.3330e-01'
    time_start_cut = 0.0
    time_end_cut = 0.0
  [../]
  [./line_seg_cut_uo1]
    type = LineSegmentCutUserObject
    cut_data = '3.9000e-01   6.3330e-01   6.8000e-01   6.3330e-01'
    time_start_cut = 0.0
    time_end_cut = 0.0
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/TensorMechanics/Master]
  [./all]
    strain = SMALL
  [../]
[]
[Functions]
  [./right_trac_x]
    type = ParsedFunction
    value = '-(t*M*y)/I'
    vars = 'M E I'
    vals = '2e4 1e6 0.666666667'
  [../]
  [./bottom_disp_y]
    type = ParsedFunction
    value = '((t*M)/(2*E*I))*(1-nu*nu)*(x*x-0.25*l*l)'
    vars = 'M E I l nu'
    vals = '2e4 1e6 0.666666667 2.0 0.3'
  [../]
  [./soln_x]
    type = ParsedFunction
    value = '-(M/(E*I))*(1-nu*nu)*x*y'
    vars = 'M E I nu'
    vals = '2e4 1e6 0.666666667 0.3'
  [../]
  [./soln_y]
    type = ParsedFunction
    value = '(M/(2*E*I))*(1-nu*nu)*(x*x-0.25*l*l+(nu/(1-nu))*y*y)'
    vars = 'M E I l nu'
    vals = '2e4 1e6 0.666666667 2.0 0.3'
  [../]
[]
[BCs]
  [./right_x]
    type = FunctionNeumannBC
    boundary = 1
    variable = disp_x
    function = right_trac_x
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    boundary = 0
    variable = disp_y
    function = bottom_disp_y
  [../]
  [./left_x]
    type = DirichletBC
    boundary = 3
    variable = disp_x
    value = 0.0
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = '201                hypre    boomeramg      8'
  line_search = 'none'
#  [./Quadrature]
#    order = FOURTH
#    type = MONOMIAL
#  [../]
  [./Predictor]
    type = SimplePredictor
    scale = 1.0
  [../]
# controls for linear iterations
  l_max_its = 100
  l_tol = 1e-2
# controls for nonlinear iterations
  nl_max_its = 15
  nl_rel_tol = 1e-16
  nl_abs_tol = 1e-10
# time control
  start_time = 0.0
  dt = 0.5
  end_time = 1.0
  num_steps = 5000
[]
[Postprocessors]
  [./numel]
    type = NumElems
    execute_on = timestep_end
  [../]
  [./integral]
    type = ElementVectorL2Error
    var_x = disp_x
    var_y = disp_y
    function_x = soln_x
    function_y = soln_y
    execute_on = timestep_end
  [../]
[]
[Outputs]
  exodus = true
  [./console]
    type = Console
    output_linear = true
  [../]
[]
(test/tests/postprocessors/linear_combination/linear_combination.i)
# Tests the LinearCombinationPostprocessor post-processor, which computes
# a linear combination of an arbitrary number of post-processor values.
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 2
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Postprocessors]
  [./pp1]
    # number of elements, equal to 2
    type = NumElems
  [../]
  [./pp2]
    # number of nodes, equal to 3
    type = NumNodes
  [../]
  # post-processor value being tested; value should be the following:
  #   value = c1 * pp1 + c2 * pp2 + b
  #         = 2  * 2   + -1 * 3   + 5 = 6
  [./linear_combination]
    type = LinearCombinationPostprocessor
    pp_names = 'pp1 pp2'
    pp_coefs = '2   -1'
    b = 5
  [../]
[]
[Outputs]
  show = linear_combination
  csv = true
[]
(modules/phase_field/examples/grain_growth/3D_6000_gr.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
  nx = 180
  ny = 180
  nz = 180
  xmin = 0
  xmax = 180
  ymin = 0
  ymax = 180
  zmin = 0
  zmax = 180
  elem_type = HEX8
[]
[GlobalParams]
  op_num = 28
  var_name_base = gr
[]
[Variables]
  [./PolycrystalVariables]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[UserObjects]
  [./voronoi]
    type = PolycrystalVoronoi
    grain_num = 6000 # Number of grains
    rand_seed = 8675 # 301
    coloring_algorithm = jp
  [../]
  [./term]
    type = Terminator
    expression = 'grain_tracker < 218'
  [../]
[]
[ICs]
  [./PolycrystalICs]
    [./PolycrystalColoringIC]
      polycrystal_ic_uo = voronoi
    [../]
  [../]
[]
[AuxVariables]
  [./bnds]
    order = FIRST
    family = LAGRANGE
  [../]
  [./unique_grains]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./ghost_elements]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./halos]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./var_indices]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./PolycrystalKernel]
  [../]
[]
[AuxKernels]
  [./BndsCalc]
    type = BndsCalcAux
    variable = bnds
    execute_on = 'initial timestep_end'
  [../]
  [./unique_grains]
    type = FeatureFloodCountAux
    variable = unique_grains
    field_display = UNIQUE_REGION
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  [../]
  [./ghost_elements]
    type = FeatureFloodCountAux
    variable = ghost_elements
    field_display = GHOSTED_ENTITIES
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  [../]
  [./halos]
    type = FeatureFloodCountAux
    variable = halos
    field_display = HALOS
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  [../]
  [./var_indices]
    type = FeatureFloodCountAux
    variable = var_indices
    field_display = VARIABLE_COLORING
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  [../]
[]
#[BCs]
#  [./Periodic]
#    [./All]
#      auto_direction = 'x y'
#    [../]
#  [../]
#[]
[Materials]
  [./Copper]
    type = GBEvolution
    T = 500
    wGB = 3 # um
    GBmob0 = 2.5e-6 #m^4/(Js) from Schoenfelder 1997
    Q = 0.23 #Migration energy in eV
    GBenergy = 0.708 #GB energy in J/m^2
    molar_volume = 7.11e-6 #Molar volume in m^3/mol
    length_scale = 1.0e-6
    time_scale = 1.0
  [../]
[]
[Postprocessors]
  [./dt]
    type = TimestepSize
  [../]
  [./n_elements]
    type = NumElems
    execute_on = timestep_end
  [../]
  [./n_nodes]
    type = NumNodes
    execute_on = timestep_end
  [../]
  [./DOFs]
    type = NumDOFs
  [../]
  [./grain_tracker]
    type = GrainTracker
    threshold = 0.1
    compute_halo_maps = true
  [../]
[]
#[Preconditioning]
#  [./SMP]
#    type = SMP
#    full = true
#  [../]
#[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = PJFNK #Preconditioned JFNK (default)
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'asm'
  l_tol = 1.0e-4
  l_max_its = 30
  nl_max_its = 20
  nl_rel_tol = 1.0e-8
  start_time = 0.0
  num_steps = 500
  dt = 0.0002
  [./TimeStepper]
    type = IterationAdaptiveDT
    cutback_factor = 0.9
    dt = 0.0002
    growth_factor = 1.1
    optimal_iterations = 8
  [../]
  #[./Adaptivity]
  #  initial_adaptivity = 4
  #  refine_fraction = 0.6
  #  coarsen_fraction = 0.1
  #  max_h_level = 4
  #  print_changed_info = true
  #[../]
[]
[Outputs]
  nemesis = true
  checkpoint = true
  csv = true
  [./console]
    type = Console
  [../]
[]
(test/tests/outputs/hide_vector_pp/hide_vector_pp.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 10
  ny = 10
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = CoefDiffusion
    variable = u
    coef = 0.1
  [../]
  [./time]
    type = TimeDerivative
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  [../]
[]
[Postprocessors]
  [./pp]
    type = NumElems
    outputs = csv
  [../]
[]
[VectorPostprocessors]
  [./vpp]
    type = LineValueSampler
    variable = u
    start_point = '0 0 0'
    end_point = '1 1 0'
    num_points = 10
    sort_by = id
    outputs = 'test'
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 20
  dt = 0.1
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  csv = true
  [./test]
    type = CSV
    execute_on = 'FINAL'
  [../]
[]
(test/tests/postprocessors/difference_pps/difference_depend_check.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  xmin = 0
  xmax = 1
  ymin = 0
  ymax = 1
  nx = 2
  ny = 2
[]
[Variables]
  [./u]
  [../]
[]
[AuxVariables]
  [./v]
  [../]
[]
[AuxKernels]
  [./one]
    type = ConstantAux
    variable = v
    value = 1
  [../]
[]
[Postprocessors]
  # This postprocessor is listed first on purpose to give the resolver something to do
  [./diff]
    type = DifferencePostprocessor
    value1 = nodes
    value2 = elems
    execute_on = 'initial timestep_end'
  [../]
  [./nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  [../]
  [./elems]
    type = NumElems
    execute_on = 'initial timestep_end'
  [../]
[]
[Problem]
  type = FEProblem
  solve = false
  kernel_coverage_check = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
(modules/combined/examples/phase_field-mechanics/EBSD_reconstruction_grain_growth_mech.i)
# This example reconstructs the grain structure from an EBSD data file
# Then, an isotropic grain model is run with linear elasticity and an anisotropic
# elasticity tensor that uses the measured EBSD angles.
[Mesh]
  [ebsd_mesh]
    type = EBSDMeshGenerator
    uniform_refine = 2 #Mesh can go two levels coarser than the EBSD grid
    filename = IN100_128x128.txt
  []
[]
[GlobalParams]
  op_num = 8
  var_name_base = gr
  displacements = 'disp_x disp_y'
[]
[Variables]
  [PolycrystalVariables] #Polycrystal variable generation (30 order parameters)
  []
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [bnds]
  []
  [gt_indices]
    order = CONSTANT
    family = MONOMIAL
  []
  [unique_grains]
    order = CONSTANT
    family = MONOMIAL
  []
  [vonmises_stress]
    order = CONSTANT
    family = MONOMIAL
  []
  [C1111]
    order = CONSTANT
    family = MONOMIAL
  []
  [phi1]
    order = CONSTANT
    family = MONOMIAL
  []
  [Phi]
    order = CONSTANT
    family = MONOMIAL
  []
  [phi2]
    order = CONSTANT
    family = MONOMIAL
  []
  [EBSD_grain]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[ICs]
  [PolycrystalICs]
    [ReconVarIC]
      ebsd_reader = ebsd
      coloring_algorithm = bt
    []
  []
[]
[Kernels]
  [PolycrystalKernel]
  []
  [PolycrystalElasticDrivingForce]
  []
  [TensorMechanics]
  []
[]
[AuxKernels]
  [BndsCalc]
    type = BndsCalcAux
    variable = bnds
    execute_on = 'initial timestep_end'
  []
  [gt_indices]
    type = FeatureFloodCountAux
    variable = gt_indices
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = VARIABLE_COLORING
  []
  [unique_grains]
    type = FeatureFloodCountAux
    variable = unique_grains
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = UNIQUE_REGION
  []
  [C1111]
    type = RankFourAux
    variable = C1111
    rank_four_tensor = elasticity_tensor
    index_l = 0
    index_j = 0
    index_k = 0
    index_i = 0
    execute_on = timestep_end
  []
  [vonmises_stress]
    type = RankTwoScalarAux
    variable = vonmises_stress
    rank_two_tensor = stress
    scalar_type = VonMisesStress
    execute_on = timestep_end
  []
  [phi1]
    type = OutputEulerAngles
    variable = phi1
    euler_angle_provider = ebsd
    grain_tracker = grain_tracker
    output_euler_angle = 'phi1'
    execute_on = 'initial'
  []
  [Phi]
    type = OutputEulerAngles
    variable = Phi
    euler_angle_provider = ebsd
    grain_tracker = grain_tracker
    output_euler_angle = 'Phi'
    execute_on = 'initial'
  []
  [phi2]
    type = OutputEulerAngles
    variable = phi2
    euler_angle_provider = ebsd
    grain_tracker = grain_tracker
    output_euler_angle = 'phi2'
    execute_on = 'initial'
  []
  [grain_aux]
    type = EBSDReaderPointDataAux
    variable = EBSD_grain
    ebsd_reader = ebsd
    data_name = 'feature_id'
    execute_on = 'initial'
  []
[]
[BCs]
  [top_displacement]
    type = DirichletBC
    variable = disp_y
    boundary = top
    value = -2.0
  []
  [x_anchor]
    type = DirichletBC
    variable = disp_x
    boundary = 'left right'
    value = 0.0
  []
  [y_anchor]
    type = DirichletBC
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
[]
[Modules]
  [PhaseField]
    [EulerAngles2RGB]
      crystal_structure = cubic
      euler_angle_provider = ebsd
      grain_tracker = grain_tracker
    []
  []
[]
[Materials]
  [Copper]
    # T = 500 # K
    type = GBEvolution
    block = 0
    T = 500
    wGB = 0.6 # um
    GBmob0 = 2.5e-6 # m^4/(Js) from Schoenfelder 1997
    Q = 0.23 # Migration energy in eV
    GBenergy = 0.708 # GB energy in J/m^2
    molar_volume = 7.11e-6; # Molar volume in m^3/mol
    length_scale = 1.0e-6
    time_scale = 1.0e-6
  []
  [ElasticityTensor]
    type = ComputePolycrystalElasticityTensor
    grain_tracker = grain_tracker
  []
  [strain]
    type = ComputeSmallStrain
    block = 0
    displacements = 'disp_x disp_y'
  []
  [stress]
    type = ComputeLinearElasticStress
    block = 0
  []
[]
[Postprocessors]
  [dt]
    type = TimestepSize
  []
  [n_elements]
    type = NumElems
    execute_on = 'initial timestep_end'
  []
  [n_nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  []
  [DOFs]
    type = NumDOFs
  []
[]
[UserObjects]
  [ebsd]
    type = EBSDReader
  []
  [grain_tracker]
    type = GrainTrackerElasticity
    compute_var_to_feature_map = true
    ebsd_reader = ebsd
    fill_method = symmetric9
    C_ijkl = '1.27e5 0.708e5 0.708e5 1.27e5 0.708e5 1.27e5 0.7355e5 0.7355e5 0.7355e5'
    euler_angle_provider = ebsd
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold'
  petsc_options_value = '  hypre    boomeramg                   0.7'
  l_tol = 1.0e-4
  l_max_its = 20
  nl_max_its = 20
  nl_rel_tol = 1.0e-8
  start_time = 0.0
  num_steps = 30
  dt = 10
  [Adaptivity]
    initial_adaptivity = 0
    refine_fraction = 0.7
    coarsen_fraction = 0.1
    max_h_level = 2
  []
  [TimeStepper]
    type = IterationAdaptiveDT
    cutback_factor = 0.9
    dt = 10.0
    growth_factor = 1.1
    optimal_iterations = 7
  []
[]
[Outputs]
  csv = true
  exodus = true
[]
(test/tests/postprocessors/num_residual_eval/num_residual_eval.i)
[Mesh]
  type = GeneratedMesh
  dim = 2
  nx = 5
  ny = 5
  xmin = 0
  xmax = 2
  ymin = 0
  ymax = 2
  # Since this test prints the number of residual evaluations, its
  # output strongly depends on the number of processors you run it on,
  # and, apparently, the type of Mesh.  To reduce this variability, we
  # limit it to run with ReplicatedMesh only.
  parallel_type = replicated
[]
[Variables]
  active = 'u'
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  active = 'diff'
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  active = 'left right'
  [./left]
    type = DirichletBC
    variable = u
    boundary = 3
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = 1
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
[]
[Postprocessors]
  [./nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  [../]
  [./elements]
    type = NumElems
    execute_on = 'initial timestep_end'
  [../]
  [./dofs]
    type = NumDOFs
    execute_on = 'initial timestep_end'
  [../]
  [./residuals]
    type = NumResidualEvaluations
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  file_base = out
  exodus = false
  csv = true
[]
(modules/phase_field/test/tests/reconstruction/euler2rgb_non_uniform_orientation.i)
[Mesh]
  [ebsd_mesh]
    type = EBSDMeshGenerator
    filename = ebsd_scan.txt
  []
[]
[GlobalParams]
  op_num = 10
  var_name_base = gr
[]
[UserObjects]
  [ebsd_reader]
    type = EBSDReader
    bins = 40
  []
  [ebsd]
    type = PolycrystalEBSD
    coloring_algorithm = jp
    ebsd_reader = ebsd_reader
    enable_var_coloring = true
  []
  [grain_tracker]
    type = GrainTracker
    flood_entity_type = ELEMENTAL
    compute_halo_maps = true # For displaying HALO fields
    polycrystal_ic_uo = ebsd
  []
[]
[ICs]
  [PolycrystalICs]
    [PolycrystalColoringIC]
      polycrystal_ic_uo = ebsd
    []
  []
[]
[Variables]
  [PolycrystalVariables]
  []
[]
[AuxVariables]
  [bnds]
  []
[]
[Kernels]
  [PolycrystalKernel]
  []
[]
[AuxKernels]
  [BndsCalc]
    type = BndsCalcAux
    variable = bnds
    execute_on = 'initial timestep_end'
  []
[]
[Modules]
  [PhaseField]
    [EulerAngles2RGB]
      crystal_structure = cubic
      euler_angle_provider = ebsd_reader
      grain_tracker = grain_tracker
    []
  []
[]
[Materials]
  [Copper]
    # T = 500 # K
    type = GBEvolution
    T = 500
    wGB = 0.6 # um
    GBmob0 = 2.5e-6 # m^4/(Js) from Schoenfelder 1997
    Q = 0.23 # Migration energy in eV
    GBenergy = 0.708 # GB energy in J/m^2
    molar_volume = 7.11e-6 # Molar volume in m^3/mol
    length_scale = 1.0e-6
    time_scale = 1.0e-6
  []
[]
[Postprocessors]
  [dt]
    type = TimestepSize
  []
  [n_elements]
    type = NumElems
    execute_on = 'initial timestep_end'
  []
  [n_nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  []
  [DOFs]
    type = NumDOFs
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = Newton
  petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold'
  petsc_options_value = 'hypre    boomeramg      0.7'
  l_tol = 1.0e-6
  l_max_its = 100
  nl_max_its = 20
  nl_rel_tol = 1.0e-8
  start_time = 0.0
  num_steps = 0
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(test/tests/postprocessors/relative_difference/relative_difference.i)
# Tests the RelativeDifferencePostprocessor post-processor, which computes
# the relative difference between 2 post-processor values.
[Mesh]
  type = GeneratedMesh
  dim = 1
  nx = 2
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Postprocessors]
  [./num_elems]
    # number of elements, equal to 2
    type = NumElems
  [../]
  [./num_nodes]
    # number of nodes, equal to 3
    type = NumNodes
  [../]
  [./zero]
    # zero post-processor value
    type = EmptyPostprocessor
  [../]
  # For the case in this input file, this will be computed as
  #   y = abs((num_nodes - num_elems) / num_elems)
  #   y = abs((3         - 2        ) / 2        ) = 0.5
  # When the command-line modification "Postprocessors/relative_difference/value2=zero" is used,
  #   y = abs(num_nodes - zero)
  #   y = abs(3         - 0   ) = 3
  [./relative_difference]
    type = RelativeDifferencePostprocessor
    value1 = num_nodes
    value2 = num_elems
  [../]
[]
[Outputs]
  [./out]
    type = CSV
    show = relative_difference
  [../]
[]
(test/tests/outputs/perf_graph/perf_graph.i)
[Mesh]
  type = GeneratedMesh
  dim = 3
  nx = 20
  ny = 20
  nz = 20
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  [../]
[]
[Postprocessors]
  [./num_dofs]
    type = NumElems
  [../]
[../]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
#  perf_graph = true
  [./pgraph]
    type = PerfGraphOutput
    level = 1
    heaviest_branch = true
    heaviest_sections = 10
  []
[]
(modules/phase_field/test/tests/grain_tracker_test/split_grain.i)
[Mesh]
  [ebsd_mesh]
    type = EBSDMeshGenerator
    filename = EBSD_split_grain.txt
  []
[]
[GlobalParams]
  op_num = 4
  var_name_base = gr
[]
[UserObjects]
  [ebsd_reader]
    type = EBSDReader
  []
  [ebsd]
    type = PolycrystalEBSD
    coloring_algorithm = bt
    ebsd_reader = ebsd_reader
    enable_var_coloring = true
    output_adjacency_matrix = true
  []
  [grain_tracker]
    type = GrainTracker
    flood_entity_type = ELEMENTAL
    compute_halo_maps = true # For displaying HALO fields
    polycrystal_ic_uo = ebsd
  []
[]
[ICs]
  [PolycrystalICs]
    [PolycrystalColoringIC]
      polycrystal_ic_uo = ebsd
    []
  []
[]
[Variables]
  [PolycrystalVariables]
  []
[]
[AuxVariables]
  [bnds]
  []
  [unique_grains]
    order = CONSTANT
    family = MONOMIAL
  []
  [ghost_elements]
    order = CONSTANT
    family = MONOMIAL
  []
  [halos]
    order = CONSTANT
    family = MONOMIAL
  []
  [var_indices]
    order = CONSTANT
    family = MONOMIAL
  []
  [ebsd_grains]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[Kernels]
  [PolycrystalKernel]
  []
[]
[AuxKernels]
  [BndsCalc]
    type = BndsCalcAux
    variable = bnds
    execute_on = 'initial timestep_end'
  []
  [ghost_elements]
    type = FeatureFloodCountAux
    variable = ghost_elements
    field_display = GHOSTED_ENTITIES
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  []
  [halos]
    type = FeatureFloodCountAux
    variable = halos
    field_display = HALOS
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
  []
  [var_indices]
    type = FeatureFloodCountAux
    variable = var_indices
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = VARIABLE_COLORING
  []
  [unique_grains]
    type = FeatureFloodCountAux
    variable = unique_grains
    execute_on = 'initial timestep_end'
    flood_counter = grain_tracker
    field_display = UNIQUE_REGION
  []
  [grain_aux]
    type = EBSDReaderPointDataAux
    variable = ebsd_grains
    ebsd_reader = ebsd_reader
    data_name = 'feature_id'
    execute_on = 'initial timestep_end'
  []
[]
[Modules]
  [PhaseField]
    [EulerAngles2RGB]
      crystal_structure = cubic
      euler_angle_provider = ebsd_reader
      grain_tracker = grain_tracker
    []
  []
[]
[Materials]
  [Copper]
    # T = 500 # K
    type = GBEvolution
    T = 500
    wGB = 0.6 # um
    GBmob0 = 2.5e-6 # m^4/(Js) from Schoenfelder 1997
    Q = 0.23 # Migration energy in eV
    GBenergy = 0.708 # GB energy in J/m^2
    molar_volume = 7.11e-6 # Molar volume in m^3/mol
    length_scale = 1.0e-6
    time_scale = 1.0e-6
  []
[]
[Postprocessors]
  [n_elements]
    type = NumElems
    execute_on = 'initial timestep_end'
  []
  [n_nodes]
    type = NumNodes
    execute_on = 'initial timestep_end'
  []
  [DOFs]
    type = NumDOFs
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold'
  petsc_options_value = 'hypre    boomeramg      0.7'
  l_tol = 1.0e-4
  l_max_its = 20
  nl_max_its = 20
  nl_rel_tol = 1.0e-8
  start_time = 0.0
  num_steps = 2
  [TimeStepper]
    type = IterationAdaptiveDT
    cutback_factor = 0.9
    dt = 10.0
    growth_factor = 1.1
    optimal_iterations = 7
  []
[]
[Outputs]
  exodus = true
  csv = true
  perf_graph = true
[]