- bx_normTo evaluate |Bx| for the eigenvalueC++ Type:PostprocessorName Unit:(no unit assumed) Controllable:No Description:To evaluate |Bx| for the eigenvalue 
NonlinearEigen
Executioner for eigenvalue problems.
Overview
Eigenvalue executioners such as this one intend on solving the eigenvalue problem described by:
where  and  are linear or nonlinear operators represented by kernels. To differentiate the  kernels from the  kernels, we must derive all  kernels from EigenKernel. Currently we are only interested in the absolute minimum eigenvalue   and the corresponding eigenvector  of the system. We are also not seeking the solutions of a general nonlinear eigenvalue problem, where the operators have nonlinear dependency on the eigenvalue.
The nonlinear Newton method
From the above section, we can see the eigenvalue problem can be viewed as a nonlinear problem
so we can use the Newton method to solve it. However, to make the solving converge, we need to have a fairly close initial guess to the fundamental mode. This can be achieved with several free power iterations before the Newton iteration. We do not have to have as part of the solution vector. Instead we can apply the elimination technique and view the equation as
Again we can use PJFNK (preconditioned Jacobian-free Newton Krylov) method to solve this nonlinear problem. The preconditioning matrix can affect the linear convergence in each Newton iteration. If there is a convergence issue, it is suggested to use and gradually reduce its complexity as the preconditioning matrix.
Input Parameters
- free_l_tol0.01Relative linear tolerance in free power iterationDefault:0.01 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Relative linear tolerance in free power iteration 
- free_power_iterations4The number of free power iterationsDefault:4 C++ Type:unsigned int Controllable:No Description:The number of free power iterations 
- k01Initial guess of the eigenvalueDefault:1 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Initial guess of the eigenvalue 
- output_after_power_iterationsTrueTrue to output solution after free power iterationsDefault:True C++ Type:bool Controllable:No Description:True to output solution after free power iterations 
- verboseFalseSet to true to print additional informationDefault:False C++ Type:bool Controllable:No Description:Set to true to print additional information 
Optional Parameters
- accept_on_max_fixed_point_iterationFalseTrue to treat reaching the maximum number of fixed point iterations as converged.Default:False C++ Type:bool Controllable:No Description:True to treat reaching the maximum number of fixed point iterations as converged. 
- auto_advanceFalseWhether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only.Default:False C++ Type:bool Controllable:No Description:Whether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only. 
- custom_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual.Default:1e-50 C++ Type:double Unit:(no unit assumed) Controllable:No Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual. 
- custom_ppPostprocessor for custom fixed point convergence check.C++ Type:PostprocessorName Unit:(no unit assumed) Controllable:No Description:Postprocessor for custom fixed point convergence check. 
- custom_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual.Default:1e-08 C++ Type:double Unit:(no unit assumed) Controllable:No Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual. 
- direct_pp_valueFalseTrue to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations.Default:False C++ Type:bool Controllable:No Description:True to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations. 
- disable_fixed_point_residual_norm_checkFalseDisable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms.Default:False C++ Type:bool Controllable:No Description:Disable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms. 
- fixed_point_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.Default:1e-50 C++ Type:double Unit:(no unit assumed) Controllable:No Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual. 
- fixed_point_algorithmpicardThe fixed point algorithm to converge the sequence of problems.Default:picard C++ Type:MooseEnum Controllable:No Description:The fixed point algorithm to converge the sequence of problems. 
- fixed_point_force_normsFalseForce the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false.Default:False C++ Type:bool Controllable:No Description:Force the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false. 
- fixed_point_max_its1Specifies the maximum number of fixed point iterations.Default:1 C++ Type:unsigned int Controllable:No Description:Specifies the maximum number of fixed point iterations. 
- fixed_point_min_its1Specifies the minimum number of fixed point iterations.Default:1 C++ Type:unsigned int Controllable:No Description:Specifies the minimum number of fixed point iterations. 
- fixed_point_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.Default:1e-08 C++ Type:double Unit:(no unit assumed) Controllable:No Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual. 
- multiapp_fixed_point_convergenceName of the Convergence object to use to assess convergence of the MultiApp fixed point solve. If not provided, a default Convergence will be constructed internally from the executioner parameters.C++ Type:ConvergenceName Controllable:No Description:Name of the Convergence object to use to assess convergence of the MultiApp fixed point solve. If not provided, a default Convergence will be constructed internally from the executioner parameters. 
- relaxation_factor1Fraction of newly computed value to keep.Set between 0 and 2.Default:1 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Fraction of newly computed value to keep.Set between 0 and 2. 
- transformed_postprocessorsList of main app postprocessors to transform during fixed point iterationsC++ Type:std::vector<PostprocessorName> Unit:(no unit assumed) Controllable:No Description:List of main app postprocessors to transform during fixed point iterations 
- transformed_variablesList of main app variables to transform during fixed point iterationsC++ Type:std::vector<std::string> Controllable:No Description:List of main app variables to transform during fixed point iterations 
Fixed Point Iterations Parameters
- auto_initializationTrueTrue to ask the solver to set initialDefault:True C++ Type:bool Controllable:No Description:True to ask the solver to set initial 
- 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. 
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this objectC++ Type:std::vector<OutputName> Controllable:No Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object 
- skip_exception_checkFalseSpecifies whether or not to skip exception checkDefault:False C++ Type:bool Controllable:No Description:Specifies whether or not to skip exception check 
- time0System timeDefault:0 C++ Type:double Unit:(no unit assumed) Controllable:No Description:System time 
Advanced Parameters
- automatic_scalingFalseWhether to use automatic scaling for the variables.Default:False C++ Type:bool Controllable:No Description:Whether to use automatic scaling for the variables. 
- compute_scaling_once1 Whether the scaling factors should only be computed once at the beginning of the simulation through an extra Jacobian evaluation. If this is set to false, then the scaling factors will be computed during an extra Jacobian evaluation at the beginning of every time step. Vector entries correspond to each nonlinear system.Default:1 C++ Type:std::vector<bool> Controllable:No Description:Whether the scaling factors should only be computed once at the beginning of the simulation through an extra Jacobian evaluation. If this is set to false, then the scaling factors will be computed during an extra Jacobian evaluation at the beginning of every time step. Vector entries correspond to each nonlinear system. 
- ignore_variables_for_autoscalingList of variables that do not participate in autoscaling. Vector entries correspond to each nonlinear system.C++ Type:std::vector<std::vector<std::string>> Controllable:No Description:List of variables that do not participate in autoscaling. Vector entries correspond to each nonlinear system. 
- off_diagonals_in_auto_scaling0 Whether to consider off-diagonals when determining automatic scaling factors. Vector entries correspond to each nonlinear system.Default:0 C++ Type:std::vector<bool> Controllable:No Description:Whether to consider off-diagonals when determining automatic scaling factors. Vector entries correspond to each nonlinear system. 
- resid_vs_jac_scaling_param0 A parameter that indicates the weighting of the residual vs the Jacobian in determining variable scaling parameters. A value of 1 indicates pure residual-based scaling. A value of 0 indicates pure Jacobian-based scaling. Vector entries correspond to each nonlinear system.Default:0 C++ Type:std::vector<double> Unit:(no unit assumed) Controllable:No Description:A parameter that indicates the weighting of the residual vs the Jacobian in determining variable scaling parameters. A value of 1 indicates pure residual-based scaling. A value of 0 indicates pure Jacobian-based scaling. Vector entries correspond to each nonlinear system. 
- scaling_group_variablesName of variables that are grouped together for determining scale factors. (Multiple groups can be provided, separated by semicolon). Vector entries correspond to each nonlinear system.C++ Type:std::vector<std::vector<std::vector<std::string, std::allocator<std::string>>>> Controllable:No Description:Name of variables that are grouped together for determining scale factors. (Multiple groups can be provided, separated by semicolon). Vector entries correspond to each nonlinear system. 
Solver Variable Scaling Parameters
- contact_line_search_allowed_lambda_cuts2The number of times lambda is allowed to be cut in half in the contact line search. We recommend this number be roughly bounded by 0 <= allowed_lambda_cuts <= 3Default:2 C++ Type:unsigned int Controllable:No Description:The number of times lambda is allowed to be cut in half in the contact line search. We recommend this number be roughly bounded by 0 <= allowed_lambda_cuts <= 3 
- contact_line_search_ltolThe linear relative tolerance to be used while the contact state is changing between non-linear iterations. We recommend that this tolerance be looser than the standard linear toleranceC++ Type:double Unit:(no unit assumed) Controllable:No Description:The linear relative tolerance to be used while the contact state is changing between non-linear iterations. We recommend that this tolerance be looser than the standard linear tolerance 
- line_searchdefaultSpecifies the line search type (Note: none = basic)Default:default C++ Type:MooseEnum Controllable:No Description:Specifies the line search type (Note: none = basic) 
- line_search_packagepetscThe solver package to use to conduct the line-searchDefault:petsc C++ Type:MooseEnum Controllable:No Description:The solver package to use to conduct the line-search 
Solver Line Search Parameters
- l_abs_tol1e-50Linear Absolute ToleranceDefault:1e-50 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Linear Absolute Tolerance 
- l_max_its10000Max Linear IterationsDefault:10000 C++ Type:unsigned int Controllable:No Description:Max Linear Iterations 
- l_tol0.01Linear Relative ToleranceDefault:0.01 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Linear Relative Tolerance 
- reuse_preconditionerFalseIf true reuse the previously calculated preconditioner for the linearized system across multiple solves spanning nonlinear iterations and time steps. The preconditioner resets as controlled by reuse_preconditioner_max_linear_itsDefault:False C++ Type:bool Controllable:No Description:If true reuse the previously calculated preconditioner for the linearized system across multiple solves spanning nonlinear iterations and time steps. The preconditioner resets as controlled by reuse_preconditioner_max_linear_its 
- reuse_preconditioner_max_linear_its25Reuse the previously calculated preconditioner for the linear system until the number of linear iterations exceeds this numberDefault:25 C++ Type:unsigned int Controllable:No Description:Reuse the previously calculated preconditioner for the linear system until the number of linear iterations exceeds this number 
Linear Solver Parameters
- linear_convergenceName of the Convergence object(s) to use to assess convergence of the linear system(s) solve. If not provided, the linear solver tolerance parameters are usedC++ Type:std::vector<ConvergenceName> Controllable:No Description:Name of the Convergence object(s) to use to assess convergence of the linear system(s) solve. If not provided, the linear solver tolerance parameters are used 
- n_max_nonlinear_pingpong100The maximum number of times the nonlinear residual can ping pong before requesting halting the current evaluation and requesting timestep cut for transient simulationsDefault:100 C++ Type:unsigned int Controllable:No Description:The maximum number of times the nonlinear residual can ping pong before requesting halting the current evaluation and requesting timestep cut for transient simulations 
- nl_abs_div_tol1e+50Nonlinear Absolute Divergence Tolerance. A negative value disables this check.Default:1e+50 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Absolute Divergence Tolerance. A negative value disables this check. 
- nl_abs_step_tol0Nonlinear Absolute step ToleranceDefault:0 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Absolute step Tolerance 
- nl_abs_tol1e-06Nonlinear Absolute ToleranceDefault:1e-06 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Absolute Tolerance 
- nl_div_tol1e+10Nonlinear Relative Divergence Tolerance. A negative value disables this check.Default:1e+10 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Relative Divergence Tolerance. A negative value disables this check. 
- nl_forced_its0The Number of Forced Nonlinear IterationsDefault:0 C++ Type:unsigned int Controllable:No Description:The Number of Forced Nonlinear Iterations 
- nl_max_funcs10000Max Nonlinear solver function evaluationsDefault:10000 C++ Type:unsigned int Controllable:No Description:Max Nonlinear solver function evaluations 
- nl_max_its50Max Nonlinear IterationsDefault:50 C++ Type:unsigned int Controllable:No Description:Max Nonlinear Iterations 
- nl_rel_step_tol0Nonlinear Relative step ToleranceDefault:0 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Relative step Tolerance 
- nl_rel_tol1e-50Nonlinear Relative ToleranceDefault:1e-50 C++ Type:double Unit:(no unit assumed) Controllable:No Description:Nonlinear Relative Tolerance 
- nonlinear_convergenceName of the Convergence object(s) to use to assess convergence of the nonlinear system(s) solve. If not provided, the default Convergence associated with the Problem will be constructed internally.C++ Type:std::vector<ConvergenceName> Controllable:No Description:Name of the Convergence object(s) to use to assess convergence of the nonlinear system(s) solve. If not provided, the default Convergence associated with the Problem will be constructed internally. 
- num_grids1The number of grids to use for a grid sequencing algorithm. This includes the final grid, so num_grids = 1 indicates just one solve in a time-stepDefault:1 C++ Type:unsigned int Controllable:No Description:The number of grids to use for a grid sequencing algorithm. This includes the final grid, so num_grids = 1 indicates just one solve in a time-step 
- residual_and_jacobian_together0 Whether to compute the residual and Jacobian together. Vector entries correspond to each nonlinear system.Default:0 C++ Type:std::vector<bool> Controllable:No Description:Whether to compute the residual and Jacobian together. Vector entries correspond to each nonlinear system. 
- snesmf_reuse_baseTrueSpecifies whether or not to reuse the base vector for matrix-free calculationDefault:True C++ Type:bool Controllable:No Description:Specifies whether or not to reuse the base vector for matrix-free calculation 
- solve_typePJFNK: Preconditioned Jacobian-Free Newton Krylov JFNK: Jacobian-Free Newton Krylov NEWTON: Full Newton Solve FD: Use finite differences to compute Jacobian LINEAR: Solving a linear problemC++ Type:MooseEnum Controllable:No Description:PJFNK: Preconditioned Jacobian-Free Newton Krylov JFNK: Jacobian-Free Newton Krylov NEWTON: Full Newton Solve FD: Use finite differences to compute Jacobian LINEAR: Solving a linear problem 
- use_pre_SMO_residualFalseCompute the pre-SMO residual norm and use it in the relative convergence check. The pre-SMO residual is computed at the begining of the time step before solution-modifying objects are executed. Solution-modifying objects include preset BCs, constraints, predictors, etc.Default:False C++ Type:bool Controllable:No Description:Compute the pre-SMO residual norm and use it in the relative convergence check. The pre-SMO residual is computed at the begining of the time step before solution-modifying objects are executed. Solution-modifying objects include preset BCs, constraints, predictors, etc. 
Nonlinear Solver Parameters
- max_xfem_update4294967295Maximum number of times to update XFEM crack topology in a step due to evolving cracksDefault:4294967295 C++ Type:unsigned int Controllable:No Description:Maximum number of times to update XFEM crack topology in a step due to evolving cracks 
- update_xfem_at_timestep_beginFalseShould XFEM update the mesh at the beginning of the timestepDefault:False C++ Type:bool Controllable:No Description:Should XFEM update the mesh at the beginning of the timestep 
Xfem Fixed Point Iterations Parameters
- mffd_typewpSpecifies the finite differencing type for Jacobian-free solve types. Note that the default is wp (for Walker and Pernice).Default:wp C++ Type:MooseEnum Controllable:No Description:Specifies the finite differencing type for Jacobian-free solve types. Note that the default is wp (for Walker and Pernice). 
- petsc_optionsSingleton PETSc optionsC++ Type:MultiMooseEnum Controllable:No Description:Singleton PETSc options 
- petsc_options_inameNames of PETSc name/value pairsC++ Type:MultiMooseEnum Controllable:No Description:Names of PETSc name/value pairs 
- petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname"C++ Type:std::vector<std::string> Controllable:No Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" 
Petsc Parameters
- multi_system_fixed_pointFalseWhether to perform fixed point (Picard) iterations between the nonlinear systems.Default:False C++ Type:bool Controllable:No Description:Whether to perform fixed point (Picard) iterations between the nonlinear systems. 
- multi_system_fixed_point_convergenceConvergence object to determine the convergence of the multi-system fixed point iteration. If unspecified, defaults to checking that every system is converged (based on their own convergence criterion)C++ Type:ConvergenceName Controllable:No Description:Convergence object to determine the convergence of the multi-system fixed point iteration. If unspecified, defaults to checking that every system is converged (based on their own convergence criterion) 
- system_namesNames of the solver systems (both linear and nonlinear) that will be solvedC++ Type:std::vector<SolverSystemName> Controllable:No Description:Names of the solver systems (both linear and nonlinear) that will be solved 
Multiple Solver System Parameters
- normal_factorNormalize x to make |x| equal to this factorC++ Type:double Unit:(no unit assumed) Controllable:No Description:Normalize x to make |x| equal to this factor 
- normalizationTo evaluate |x| for normalizationC++ Type:PostprocessorName Unit:(no unit assumed) Controllable:No Description:To evaluate |x| for normalization 
- output_before_normalizationTrueTrue to output a step before normalizationDefault:True C++ Type:bool Controllable:No Description:True to output a step before normalization