10#include "libmesh/petsc_macro.h"
11#include "libmesh/libmesh_config.h"
40 registerExecFlag(
"MULTIAPP_FIXED_POINT_ITERATION_END");
42 registerDefaultExecFlag(
"MULTIAPP_FIXED_POINT_END");
44 registerDefaultExecFlag(
"MULTIAPP_FIXED_POINT_BEGIN");
46 registerDefaultExecFlag(
"MULTIAPP_FIXED_POINT_CONVERGENCE");
48 registerDefaultExecFlag(
"MULTISYSTEM_FIXED_POINT_ITERATION_END");
60#ifdef LIBMESH_ENABLE_AMR
81 registerAppDataFilePath(
"moose");
82 registerRepository(
"moose",
"github.com/idaholab/moose");
91 R
"(@article{harbour2025moose,
92 title = {4.0 {MOOSE}: Enabling massively parallel Multiphysics simulation},
93 journal = {{SoftwareX}},
98 doi = {https://doi.org/10.1016/j.softx.2025.102264},
99 url = {https://www.sciencedirect.com/science/article/pii/S2352711025002316},
100 author = {Logan Harbour and Guillaume Giudicelli and Alexander D. Lindsay and Peter German and Joshua Hansel and Casey Icenhour and Mengnan Li and Jason M. Miller and Roy H. Stogner and Patrick Behne and Daniel Yankura and Zachary M. Prince and Corey DeChant and Daniel Schwen and Benjamin W. Spencer and Mauricio Tano and Namjae Choi and Yaqi Wang and Max Nezdyur and Yinbin Miao and Tianchen Hu and Shikhar Kumar and Christopher Matthews and Brandon Langley and Nuno Nobre and Alexander Blair and Chris MacMackin and Henrique Bergallo Rocha and Edward Palmer and Jesse Carter and J{\"o}rg Meier and Andrew E. Slaughter and David Andr{\v{s}} and Robert W. Carlsen and Fande Kong and Derek R. Gaston and Cody J. Permann},
108 R
"(@article{libMeshPaper,
109 author = {B.~S.~Kirk and J.~W.~Peterson and R.~H.~Stogner and G.~F.~Carey},
110 title = {{\texttt{libMesh}: A C++ Library for Parallel Adaptive Mesh
111 Refinement/Coarsening Simulations}},
112 journal = {Engineering with Computers},
117 url={http://dx.doi.org/10.1007/s00366-006-0049-3}
120#ifdef MOOSE_MFEM_ENABLED
125 R
"(@article{mfem-2024,
126 title = {High-Performance Finite Elements with {MFEM}},
127 author = {J. Andrej and N. Atallah and J.-P. B{\"a}cker and J.-S. Camier and D. Copeland and V. Dobrev and Y. Dudouit and T. Duswald and B. Keith and D. Kim and T. Kolev and B. Lazarov and K. Mittal and W. Pazner and S. Petrides and S. Shiraiwa and M. Stowell and V. Tomov},
128 journal = {The International Journal of High Performance Computing Applications},
133 publisher = {SAGE Publications Sage UK: London, England},
163 registerMooseObjectTask(
"create_problem",
Problem,
false);
164 registerMooseObjectTask(
"setup_executioner",
Executioner,
false);
165 registerMooseObjectTask(
"read_executor",
Executor,
false);
166 registerTask(
"add_executor",
true);
169 registerTask(
"init_physics",
false);
170 registerTask(
"init_component_physics",
false);
171 registerTask(
"meta_action_component",
false);
172 registerTask(
"setup_component",
false);
174 registerTask(
"list_component",
false);
178 registerMooseObjectTask(
"determine_system_type",
Executioner,
true);
180 registerMooseObjectTask(
"setup_mesh",
MooseMesh,
false);
181 registerMooseObjectTask(
"set_mesh_base",
MooseMesh,
false);
182 registerMooseObjectTask(
"init_mesh",
MooseMesh,
false);
183 registerMooseObjectTask(
"add_mesh_generator",
MeshGenerator,
false);
184 registerTask(
"create_added_mesh_generators",
true);
185 registerMooseObjectTask(
"append_mesh_generator",
MeshGenerator,
false);
187 registerMooseObjectTask(
"add_kernel",
Kernel,
false);
195 registerMooseObjectTask(
"add_elemental_field_variable",
MooseVariableBase,
false);
198 registerMooseObjectTask(
"add_nodal_kernel",
NodalKernel,
false);
200 registerMooseObjectTask(
"add_functor_material",
FunctorMaterial,
false);
201 registerMooseObjectTask(
"add_material",
MaterialBase,
false);
203 registerMooseObjectTask(
"add_materials_physics",
FunctorMaterial,
false);
204 appendMooseObjectTask (
"add_materials_physics",
MaterialBase);
208 registerMooseObjectTask(
"add_function",
Function,
false);
210 registerMooseObjectTask(
"add_distribution",
Distribution,
false);
211 registerMooseObjectTask(
"add_sampler",
Sampler,
false);
213 registerMooseObjectTask(
"add_aux_kernel",
AuxKernel,
false);
217 registerMooseObjectTask(
"add_bound", Bounds,
false);
219 registerMooseObjectTask(
"add_scalar_kernel",
ScalarKernel,
false);
220 registerMooseObjectTask(
"add_aux_scalar_kernel",
AuxScalarKernel,
false);
221 registerMooseObjectTask(
"add_dirac_kernel",
DiracKernel,
false);
223 registerMooseObjectTask(
"add_dg_kernel",
DGKernel,
false);
224 registerMooseObjectTask(
"add_fv_kernel",
FVKernel,
false);
228 registerMooseObjectTask(
"add_linear_fv_kernel",
LinearFVKernel,
false);
232 registerMooseObjectTask(
"add_interface_kernel",
InterfaceKernel,
false);
234 registerMooseObjectTask(
"add_constraint",
Constraint,
false);
235 registerMooseObjectTask(
"add_hybridized_kernel",
HDGKernel,
false);
236 registerMooseObjectTask(
"add_hybridized_integrated_bc", HDGIntegratedBC,
false);
245 registerMooseObjectTask(
"add_damper",
Damper,
false);
246 registerMooseObjectTask(
"setup_predictor",
Predictor,
false);
247 registerMooseObjectTask(
"add_time_steppers",
TimeStepper,
false);
248 registerMooseObjectTask(
"add_time_stepper",
TimeStepper,
false);
249 registerTask (
"compose_time_stepper",
true);
250 registerMooseObjectTask(
"setup_time_integrators",
TimeIntegrator,
false);
251 registerMooseObjectTask(
"setup_time_integrator",
TimeIntegrator,
false);
252 registerMooseObjectTask(
"add_convergence",
Convergence,
false);
255 registerMooseObjectTask(
"add_field_split",
Split,
false);
257 registerMooseObjectTask(
"add_mesh_division",
MeshDivision,
false);
258 registerMooseObjectTask(
"add_user_object",
UserObject,
false);
261 appendDeprecatedMooseObjectTask(
"add_user_object", Corrector);
262 registerMooseObjectTask(
"add_corrector", Corrector,
false);
263 appendDeprecatedMooseObjectTask(
"add_user_object", MeshModifier);
264 registerMooseObjectTask(
"add_mesh_modifier", MeshModifier,
false);
266 registerMooseObjectTask(
"add_postprocessor",
Postprocessor,
false);
268 registerMooseObjectTask(
"add_reporter",
Reporter,
false);
270 registerMooseObjectTask(
"add_positions",
Positions,
false);
271 registerMooseObjectTask(
"add_times",
Times,
false);
273 registerMooseObjectTask(
"add_indicator",
Indicator,
false);
274 registerMooseObjectTask(
"add_marker",
Marker,
false);
276 registerMooseObjectTask(
"add_multi_app",
MultiApp,
false);
277 registerMooseObjectTask(
"add_transfer",
Transfer,
false);
279 registerMooseObjectTask(
"add_output",
Output,
false);
281 registerMooseObjectTask(
"add_control",
Control,
false);
282 registerMooseObjectTask(
"add_chain_control",
ChainControl,
false);
287 registerTask(
"dynamic_object_registration",
false);
288 registerTask(
"common_output",
true);
289 registerTask(
"setup_recover_file_base",
true);
290 registerTask(
"recover_meta_data",
true);
292 registerTask(
"add_bounds_vectors",
false);
293 registerTask(
"add_periodic_bc",
false);
294 registerTask(
"add_aux_variable",
false);
295 registerTask(
"add_external_aux_variables",
true);
296 registerTask(
"add_variable",
false);
297 registerTask(
"add_mortar_variable",
false);
299 registerTask(
"execute_mesh_generators",
true);
300 registerTask(
"uniform_refine_mesh",
false);
301 registerTask(
"prepare_mesh",
false);
302 registerTask(
"delete_remote_elements_after_late_geometric_ghosting",
false);
303 registerTask(
"setup_mesh_complete",
true);
304 registerTask(
"post_mesh_prepared",
false);
305 registerTask(
"add_geometric_rm",
false);
306 registerTask(
"attach_geometric_rm",
true);
307 registerTask(
"attach_geometric_rm_final",
true);
309 registerTask(
"init_displaced_problem",
false);
311 registerTask(
"add_algebraic_rm",
false);
312 registerTask(
"attach_algebraic_rm",
true);
313 registerTask(
"add_coupling_rm",
false);
314 registerTask(
"attach_coupling_rm",
true);
315 registerTask(
"init_problem",
true);
316 registerTask(
"check_copy_nodal_vars",
true);
317 registerTask(
"copy_nodal_vars",
true);
318 registerTask(
"copy_nodal_aux_vars",
true);
319 registerTask(
"copy_vars_physics",
false);
320 registerTask(
"setup_postprocessor_data",
false);
321 registerTask(
"setup_time_steppers",
true);
323 registerTask(
"setup_dampers",
true);
324 registerTask(
"check_integrity",
true);
325 registerTask(
"resolve_optional_materials",
true);
326 registerTask(
"check_integrity_early",
true);
327 registerTask(
"check_integrity_early_physics",
false);
328 registerTask(
"setup_quadrature",
true);
329 registerTask(
"create_tagged_matrices",
true);
331 registerTask(
"mesh_modifiers",
false);
334 registerTask(
"no_action",
false);
335 registerTask(
"set_global_params",
false);
336 registerTask(
"setup_adaptivity",
false);
337 registerTask(
"meta_action",
false);
338 registerTask(
"setup_residual_debug",
false);
339 registerTask(
"setup_oversampling",
false);
340 registerTask(
"deprecated_block",
false);
341 registerTask(
"set_adaptivity_options",
false);
342 registerTask(
"add_mortar_interface",
false);
343 registerTask(
"coupling_functor_check",
true);
344 registerTask(
"add_master_action_material",
false);
345 registerTask(
"setup_projected_properties",
false);
346 registerTask(
"create_application_block",
false);
349 registerTask(
"setup_function_complete",
false);
350 registerTask(
"setup_variable_complete",
false);
351 registerTask(
"setup_executioner_complete",
false);
352 registerTask(
"ready_to_init",
true);
355 registerTask(
"add_output_aux_variables",
true);
356 registerTask(
"check_output",
true);
357 registerTask(
"declare_late_reporters",
true);
359 registerTask(
"create_problem_default",
true);
360 registerTask(
"create_problem_custom",
false);
361 registerTask(
"create_problem_complete",
false);
363 registerTask(
"add_default_nonlinear_convergence",
true);
364 registerTask(
"add_default_multiapp_fixed_point_convergence",
true);
365 registerTask(
"add_default_steady_state_convergence",
true);
367 registerTask(
"chain_control_setup",
true);
368 registerTask(
"start_webservercontrol",
true);
371 registerTask(
"auto_checkpoint_action",
true);
387 "(meta_action_component)"
388 "(dynamic_object_registration)"
390 "(set_global_params)"
391 "(setup_recover_file_base)"
392 "(check_copy_nodal_vars)"
396 "(add_mesh_generator)"
397 "(create_added_mesh_generators)"
398 "(append_mesh_generator)"
399 "(execute_mesh_generators)"
400 "(recover_meta_data)"
402 "(attach_geometric_rm)"
405 "(add_mortar_interface)"
406 "(uniform_refine_mesh)"
407 "(setup_mesh_complete)"
408 "(post_mesh_prepared)"
409 "(determine_system_type)"
411 "(create_problem_custom)"
412 "(create_problem_default)"
413 "(create_problem_complete)"
414 "(init_displaced_problem)"
417 "(init_component_physics)"
419 "(setup_postprocessor_data)"
420 "(setup_time_integrator, setup_time_integrators)"
421 "(setup_executioner)"
422 "(setup_executioner_complete)"
426 "(check_integrity_early)"
428 "(add_aux_variable, add_variable, add_elemental_field_variable,"
429 " add_external_aux_variables)"
430 "(add_variables_physics)"
431 "(add_mortar_variable)"
432 "(setup_variable_complete)"
433 "(check_integrity_early_physics)"
436 "(add_default_nonlinear_convergence,"
437 " add_default_multiapp_fixed_point_convergence,"
438 " add_default_steady_state_convergence)"
441 "(add_gradient_method)"
442 "(add_user_object, add_corrector, add_mesh_modifier)"
444 "(add_preconditioning)"
445 "(create_tagged_matrices)"
448 "(setup_function_complete)"
450 "(set_adaptivity_options)"
451 "(add_ic, add_fv_ic)"
455 "(add_time_stepper, add_time_steppers)"
456 "(compose_time_stepper)"
457 "(setup_time_steppers)"
460 "(setup_residual_debug)"
461 "(add_bounds_vectors)"
462 "(add_mesh_division)"
465 "(copy_nodal_vars, copy_nodal_aux_vars, copy_vars_physics)"
467 "(add_master_action_material)"
468 "(add_functor_material)"
469 "(add_materials_physics)"
470 "(setup_projected_properties)"
471 "(add_output_aux_variables)"
473 "(auto_checkpoint_action)"
474 "(add_postprocessor)"
475 "(add_vector_postprocessor)"
478 "(declare_late_reporters)"
479 "(add_aux_kernel, add_bc, add_damper, add_dirac_kernel, add_kernel,"
480 " add_nodal_kernel, add_dg_kernel, add_fv_kernel, add_interpolation_method,"
481 " add_interpolation_method_physics, add_linear_fv_kernel,"
482 " add_fv_bc, add_linear_fv_bc, add_fv_ik, add_interface_kernel,"
483 " add_scalar_kernel, add_aux_scalar_kernel, add_indicator, add_marker,"
484 " add_bound, add_hybridized_kernel, add_hybridized_integrated_bc)"
485 "(resolve_optional_materials)"
488 "(attach_geometric_rm_final)"
489 "(attach_algebraic_rm)"
490 "(attach_coupling_rm)"
491 "(coupling_functor_check)"
492 "(delete_remote_elements_after_late_geometric_ghosting)"
494 "(add_control, add_chain_control)"
495 "(chain_control_setup)"
496 "(start_webservercontrol)"
499 "(create_application_block)");
502#ifdef MOOSE_MFEM_ENABLED
503 registerTask(
"add_mfem_problem_operator",
true);
504 addTaskDependency(
"add_variable",
"add_mfem_problem_operator");
505 addTaskDependency(
"add_aux_variable",
"add_mfem_problem_operator");
506 addTaskDependency(
"add_elemental_field_variable",
"add_mfem_problem_operator");
507 addTaskDependency(
"add_bc",
"add_mfem_problem_operator");
508 addTaskDependency(
"add_kernel",
"add_mfem_problem_operator");
512 addTaskDependency(
"add_mfem_problem_operator",
"add_mfem_problem_composer");
513 addTaskDependency(
"setup_executioner",
"add_mfem_problem_composer");
516 registerMooseObjectTask(
"add_mfem_submeshes",
MFEMSubMesh,
false);
517 addTaskDependency(
"add_mfem_submeshes",
"create_problem_complete");
523 registerMooseObjectTask(
"add_mfem_fespaces",
MFEMFESpace,
false);
524 appendMooseObjectTask(
"add_mfem_fespaces", MFEMFECollection);
525 addTaskDependency(
"add_mfem_fespaces",
"add_mfem_submeshes");
529 addTaskDependency(
"add_mfem_fespace_hierarchies",
"add_mfem_fespaces");
533 addTaskDependency(
"add_variable",
"add_mfem_fespace_hierarchies");
534 addTaskDependency(
"add_aux_variable",
"add_mfem_fespace_hierarchies");
535 addTaskDependency(
"add_elemental_field_variable",
"add_mfem_fespace_hierarchies");
537 addTaskDependency(
"add_kernel",
"add_mfem_fespaces");
540 registerMooseObjectTask(
"add_mfem_complex_kernel_components",
Kernel,
false);
541 registerMooseObjectTask(
"add_mfem_complex_bc_components",
BoundaryCondition,
false);
542 addTaskDependency(
"add_mfem_complex_kernel_components",
"add_mfem_fespaces");
543 addTaskDependency(
"add_mfem_complex_bc_components",
"add_mfem_fespaces");
544 addTaskDependency(
"add_mfem_complex_kernel_components",
"add_kernel");
545 addTaskDependency(
"add_mfem_complex_bc_components",
"add_bc");
548 registerTask(
"set_mesh_fe_space",
true);
549 addTaskDependency(
"set_mesh_fe_space",
"add_variable");
550 addTaskDependency(
"set_mesh_fe_space",
"init_mesh");
554 addTaskDependency(
"add_mfem_solver",
"add_mfem_fespace_hierarchies");
555 addTaskDependency(
"add_mfem_solver",
"add_mfem_problem_operator");
556 addTaskDependency(
"add_mfem_solver",
"add_variable");
557 registerTask(
"resolve_mfem_solvers",
true);
558 addTaskDependency(
"resolve_mfem_solvers",
"add_mfem_solver");
559 addTaskDependency(
"init_problem",
"resolve_mfem_solvers");
562 addTaskDependency(
"add_marker",
"add_indicator");
567 addTaskDependency(
"add_interpolation_method_physics",
"add_interpolation_method");
568 addTaskDependency(
"add_fv_kernel",
"add_interpolation_method_physics");
569 addTaskDependency(
"add_linear_fv_kernel",
"add_interpolation_method_physics");
570 addTaskDependency(
"add_fv_kernel",
"add_interpolation_method");
571 addTaskDependency(
"add_linear_fv_kernel",
"add_interpolation_method");
573 addTaskDependency(
"add_user_object",
"add_gradient_method");
574 addTaskDependency(
"add_linear_fv_kernel",
"add_gradient_method");
575 addTaskDependency(
"add_linear_fv_bc",
"add_gradient_method");
577 registerTask(
"parse_neml2",
false);
578 addTaskDependency(
"add_material",
"parse_neml2");
579 addTaskDependency(
"add_user_object",
"parse_neml2");
620 const std::set<std::string> & obj_labels)
625 registerTask(
"dump_objects",
false);
626 registerTask(
"finish_input_file_output",
false);
637 registerSyntax(
"DiffusionCG",
"Physics/Diffusion/ContinuousGalerkin/*");
638 registerSyntax(
"DiffusionFV",
"Physics/Diffusion/FiniteVolume/*");
640 registerSyntax(
"AddActionComponentAction",
"ActionComponents/*");
641 registerSyntax(
"CombineComponentsMeshes",
"ActionComponents");
643 registerSyntaxTask(
"CopyNodalVarsAction",
"Variables/*",
"check_copy_nodal_vars");
644 registerSyntaxTask(
"CopyNodalVarsAction",
"Variables/*",
"copy_nodal_vars");
645 registerSyntaxTask(
"CopyNodalVarsAction",
"AuxVariables/*",
"check_copy_nodal_vars");
646 registerSyntaxTask(
"CopyNodalVarsAction",
"AuxVariables/*",
"copy_nodal_aux_vars");
648 registerSyntaxTask(
"AddKernelAction",
"Kernels/*",
"add_kernel");
649 registerSyntaxTask(
"AddNodalKernelAction",
"NodalKernels/*",
"add_nodal_kernel");
650 registerSyntaxTask(
"AddKernelAction",
"AuxKernels/*",
"add_aux_kernel");
652 registerSyntaxTask(
"AddHDGKernelAction",
"HDGKernels/*",
"add_hybridized_kernel");
654 registerSyntax(
"AddAuxKernelAction",
"AuxVariables/*/AuxKernel");
656 registerSyntaxTask(
"AddScalarKernelAction",
"ScalarKernels/*",
"add_scalar_kernel");
657 registerSyntaxTask(
"AddScalarKernelAction",
"AuxScalarKernels/*",
"add_aux_scalar_kernel");
659 registerSyntaxTask(
"AddBCAction",
"BCs/*",
"add_bc");
661 registerSyntax(
"CreateProblemAction",
"Problem");
662 registerSyntax(
"DynamicObjectRegistrationAction",
"Problem");
664 registerSyntax(
"SetupMeshAction",
"Mesh");
665 registerSyntax(
"SetupMeshCompleteAction",
"Mesh");
667 registerSyntax(
"CreateMeshSetupActionsForComponents",
"ActionComponents");
668 registerSyntax(
"CreateDisplacedProblemAction",
"Mesh");
669 registerSyntax(
"DisplayGhostingAction",
"Mesh");
670 registerSyntax(
"AddMeshGeneratorAction",
"Mesh/*");
671 registerSyntaxTask(
"EmptyAction",
"Mesh/BatchMeshGeneratorAction",
"no_action");
672 registerSyntax(
"BatchMeshGeneratorAction",
"Mesh/BatchMeshGeneratorAction/*");
673 registerSyntax(
"ElementIDOutputAction",
"Mesh");
676 registerSyntax(
"AddFunctionAction",
"Functions/*");
679 registerSyntax(
"AddMeshDivisionAction",
"MeshDivisions/*");
681 registerSyntax(
"AddConvergenceAction",
"Convergence/*");
684 registerSyntax(
"GlobalParamsAction",
"GlobalParams");
686 registerSyntax(
"AddDistributionAction",
"Distributions/*");
689 registerSyntax(
"AddSamplerAction",
"Samplers/*");
692 registerSyntax(
"SetupDebugAction",
"Debug");
693 registerSyntax(
"SetupResidualDebugAction",
"Debug");
696 registerSyntax(
"AddVariableAction",
"Variables/*");
700 registerSyntax(
"AddICAction",
"Variables/*/InitialCondition");
701 registerSyntax(
"AddFVICAction",
"Variables/*/FVInitialCondition");
703 registerSyntax(
"AddAuxVariableAction",
"AuxVariables/*");
707 registerSyntax(
"AddICAction",
"AuxVariables/*/InitialCondition");
708 registerSyntax(
"AddFVICAction",
"AuxVariables/*/FVInitialCondition");
710 registerSyntaxTask(
"EmptyAction",
"BCs/Periodic",
"no_action");
711 registerSyntax(
"AddPeriodicBCAction",
"BCs/Periodic/*");
713 registerSyntaxTask(
"AddInitialConditionAction",
"ICs/*",
"add_ic");
714 registerSyntaxTask(
"AddFVInitialConditionAction",
"FVICs/*",
"add_fv_ic");
716 registerSyntax(
"AddMaterialAction",
"Materials/*");
719 registerSyntax(
"AddFunctorMaterialAction",
"FunctorMaterials/*");
722 registerSyntax(
"AddPostprocessorAction",
"Postprocessors/*");
726 registerSyntax(
"AddVectorPostprocessorAction",
"VectorPostprocessors/*");
729 registerSyntax(
"AddReporterAction",
"Reporters/*");
732 registerSyntax(
"AddPositionsAction",
"Positions/*");
735 registerSyntax(
"AddTimesAction",
"Times/*");
738 registerSyntax(
"AddDamperAction",
"Dampers/*");
740 registerSyntax(
"AddOutputAction",
"Outputs/*");
741 registerSyntax(
"CommonOutputAction",
"Outputs");
742 registerSyntax(
"MaterialOutputAction",
"Outputs");
743 registerSyntax(
"AutoCheckpointAction",
"Outputs");
747 registerSyntax(
"SetupPreconditionerAction",
"Preconditioning/*");
748 registerSyntax(
"AddFieldSplitAction",
"Preconditioning/*/*");
750 registerSyntax(
"CreateExecutionerAction",
"Executioner");
751 registerSyntax(
"ReadExecutorParamsAction",
"Executors/*");
753 registerSyntaxTask(
"AddTimeStepperAction",
"Executioner/TimeSteppers/*",
"add_time_steppers");
754 registerSyntaxTask(
"AddTimeStepperAction",
"Executioner/TimeStepper",
"add_time_stepper");
756 "ComposeTimeStepperAction",
"Executioner/TimeSteppers",
"compose_time_stepper");
758 "SetupTimeIntegratorAction",
"Executioner/TimeIntegrators/*",
"setup_time_integrators");
760 "SetupTimeIntegratorAction",
"Executioner/TimeIntegrator",
"setup_time_integrator");
763 registerSyntax(
"SetupQuadratureAction",
"Executioner/Quadrature");
764 registerSyntax(
"SetupPredictorAction",
"Executioner/Predictor");
765#ifdef LIBMESH_ENABLE_AMR
766 registerSyntax(
"AdaptivityAction",
"Executioner/Adaptivity");
769 registerSyntax(
"PartitionerAction",
"Mesh/Partitioner");
771 registerSyntax(
"AddDiracKernelAction",
"DiracKernels/*");
773 registerSyntax(
"AddDGKernelAction",
"DGKernels/*");
774 registerSyntax(
"AddFVKernelAction",
"FVKernels/*");
775 registerSyntax(
"AddFVBCAction",
"FVBCs/*");
776 registerSyntax(
"AddLinearFVBCAction",
"LinearFVBCs/*");
777 registerSyntax(
"AddFVInterfaceKernelAction",
"FVInterfaceKernels/*");
778 registerSyntax(
"CheckFVBCAction",
"FVBCs");
780 registerSyntax(
"AddLinearFVKernelAction",
"LinearFVKernels/*");
782 registerSyntax(
"AddInterfaceKernelAction",
"InterfaceKernels/*");
784 registerSyntax(
"AddConstraintAction",
"Constraints/*");
786 registerSyntax(
"AddControlAction",
"Controls/*");
787 registerSyntax(
"AddChainControlAction",
"ChainControls/*");
788 registerSyntax(
"AddBoundAction",
"Bounds/*");
789 registerSyntax(
"AddBoundsVectorsAction",
"Bounds");
792 registerSyntax(
"AddUserObjectAction",
"UserObjects/*");
795 registerSyntax(
"AddCorrectorAction",
"Correctors/*");
798 registerSyntax(
"AddMeshModifiersAction",
"MeshModifiers/*");
801 registerSyntax(
"AddNodalNormalsAction",
"NodalNormals");
804 registerSyntax(
"AddFVInterpolationMethodAction",
"FVInterpolationMethods/*");
808 registerSyntax(
"AddFVGradientMethodAction",
"FVGradientMethods/*");
812 registerSyntax(
"AddElementalFieldAction",
"Adaptivity/Indicators/*");
813 registerSyntax(
"AddIndicatorAction",
"Adaptivity/Indicators/*");
817 registerSyntax(
"AddElementalFieldAction",
"Adaptivity/Markers/*");
818 registerSyntax(
"AddMarkerAction",
"Adaptivity/Markers/*");
822 registerSyntax(
"SetAdaptivityOptionsAction",
"Adaptivity");
825 registerSyntax(
"DeprecatedBlockAction",
"DeprecatedBlock");
828 registerSyntax(
"AddMultiAppAction",
"MultiApps/*");
832 registerSyntax(
"AddTransferAction",
"Transfers/*");
835 registerSyntaxTask(
"EmptyAction",
"Debug/MaterialDerivativeTest",
"no_action");
836 registerSyntax(
"MaterialDerivativeTestAction",
"Debug/MaterialDerivativeTest/*");
838 registerSyntax(
"ProjectedStatefulMaterialStorageAction",
"ProjectedStatefulMaterialStorage/*");
841 registerSyntax(
"CreateApplicationBlockAction",
"Application");
843#ifdef MOOSE_MFEM_ENABLED
844 registerSyntaxTask(
"AddMFEMSubMeshAction",
"SubMeshes/*",
"add_mfem_submeshes");
845 registerSyntaxTask(
"AddMFEMFESpaceAction",
"FESpaces/*",
"add_mfem_fespaces");
847 "AddMFEMFESpaceHierarchyAction",
"FESpaceHierarchies/*",
"add_mfem_fespace_hierarchies");
849 "AddMFEMComplexKernelComponentAction",
"Kernels/*/*",
"add_mfem_complex_kernel_components");
851 "AddMFEMComplexBCComponentAction",
"BCs/*/*",
"add_mfem_complex_bc_components");
852 registerSyntaxTask(
"AddMFEMSolverAction",
"Solvers/*",
"add_mfem_solver");
855 "AddMFEMProblemComposerAction",
"ProblemComposers/*",
"add_mfem_problem_composer");
858 registerSyntax(
"NEML2ActionCommon",
"NEML2");
859 registerSyntax(
"NEML2Action",
"NEML2/*");
881 MPI_Comm old_comm = PETSC_COMM_WORLD;
882 PETSC_COMM_WORLD = new_comm;
908ScopedThrowOnError::ScopedThrowOnError() : ScopedThrowOnError(true) {}
912ScopedDeprecatedIsError::ScopedDeprecatedIsError(
const bool deprecated_is_error)
919ScopedDeprecatedIsError::ScopedDeprecatedIsError() : ScopedDeprecatedIsError(true) {}
921ScopedDeprecatedIsError::~ScopedDeprecatedIsError()
930 if (node.filename() ==
"CLI_ARGS")
931 return "CLI_ARGS:\n";
934 return node.filename() +
":\n";
935 return node.fileLocation() +
":\n";
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
const ExecFlagType EXEC_FORCED
const ExecFlagType EXEC_TRANSFER
const ExecFlagType EXEC_PRE_MULTIAPP_SETUP
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_END
const ExecFlagType EXEC_MULTISYSTEM_FIXED_POINT_ITERATION_END
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_CONVERGENCE
const ExecFlagType EXEC_SUBDOMAIN
const ExecFlagType EXEC_TIMESTEP_END
const ExecFlagType EXEC_TIMESTEP_BEGIN
const ExecFlagType EXEC_SAME_AS_MULTIAPP
const ExecFlagType EXEC_POSTCHECK
const ExecFlagType EXEC_ALWAYS
const ExecFlagType EXEC_CUSTOM
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_ITERATION_END
const ExecFlagType EXEC_POST_ADAPTIVITY
const ExecFlagType EXEC_LINEAR_CONVERGENCE
const ExecFlagType EXEC_INITIAL
const ExecFlagType EXEC_MULTIAPP_FIXED_POINT_BEGIN
const ExecFlagType EXEC_LINEAR
const ExecFlagType EXEC_PRE_KERNELS
const ExecFlagType EXEC_NONLINEAR
const ExecFlagType EXEC_FAILED
const ExecFlagType EXEC_NONE
const ExecFlagType EXEC_FINAL
const ExecFlagType EXEC_NONLINEAR_CONVERGENCE
const ExecFlagType EXEC_PRE_DISPLACE
const ExecFlagType EXEC_POSTCHECK
const ExecFlagType EXEC_LINEAR
const ExecFlagType EXEC_NONLINEAR
Base class for array variable (equation) kernels using automatic differentiation.
Specialized factory for generic Action System objects.
Base class for making kernels that work on auxiliary scalar variables.
Base class for creating new types of boundary conditions.
Control that additionally provides the capability to produce/consume data values, to allow control op...
Base class for all Constraint types.
Base class for Control objects.
Base class for convergence criteria.
The DGKernel class is responsible for calculating the residuals for various physics on internal sides...
Base class for deriving dampers.
A DiracKernel is used when you need to add contributions to the residual by means of multiplying some...
All Distributions should inherit from this class.
The behavior of this kernel is controlled by one problem-wise global parameter eigen_on_current - boo...
Executioners are objects that do the actual work of solving your problem.
The Executor class directs the execution flow of simulations.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Base class for creating new types of boundary conditions.
Base class for linear finite-volume cell-gradient methods.
This is a template class that implements the workhorse compute and computeNodal methods.
Base class for creating kernels that interface physics between subdomains.
Registered base class for linear FV interpolation objects.
FVKernel is a base class for all finite volume method kernels.
Generic factory class for build all sorts of objects.
Base class for function objects.
FunctorMaterials compute functor material properties.
Base kernel for hybridized finite element formulations.
This is a template class that implements the workhorse compute and computeNodal methods.
InterfaceKernel and VectorInterfaceKernel is responsible for interfacing physics across subdomains.
Base class for boundary conditions for linear FV systems.
Base class for finite volume kernels that contribute to a linear systems.
Builds and owns a mfem::ParFiniteElementSpaceHierarchy from a base FESpace by applying a sequence of ...
Constructs and stores an mfem::ParFiniteElementSpace object.
Interface required for all MFEMProblemComposers.
Class to transfer MFEM variable data to or from a restricted copy of the variable defined on an a sub...
Base class for construction of a mfem::ParSubMesh object.
MaterialBases compute MaterialProperties.
Base class for MeshDivision objects.
MeshGenerators are objects that can modify or add to an existing mesh.
Class for containing MooseEnum item information.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Base class for MOOSE partitioner.
Base class for MOOSE preconditioners.
Base class for wrapping mfem::Solver-derived classes.
ScopedThrowOnError()
Default constructor, which sets Moose::_throw_on_error = true.
A MultiApp represents one or more MOOSE applications that are running simultaneously.
Base class for creating nodal kernels with hand-coded Jacobians.
Based class for output objects.
Positions objects are under the hood Reporters.
Base class for all Postprocessors.
Base class for predictors.
Class that hold the whole problem being solved.
static void addAppCitation(const std::string &app_name, const std::string &key, const std::string &bibtex)
Register a citation (the full BibTeX bibtex text, identified by key) tied to the app app_name; emitte...
static void registerActionsTo(ActionFactory &f, const std::set< std::string > &labels)
This registers all Actions known to the registry that have the given label(s) with the factory f.
static void registerObjectsTo(Factory &f, const std::set< std::string > &labels)
This registers all MooseObjects known to the registry that have the given label(s) with the factory f...
Reporter objects allow for the declaration of arbitrary data types that are aggregate values for a si...
This is the base class for Samplers as used within the Stochastic Tools module.
InitialConditions are objects that set the initial value of variables.
Base class for split-based preconditioners.
Holding syntax for parsing input files.
void addDependencySets(const std::string &action_sets)
Adds all dependencies in a single call.
void registerSyntaxType(const std::string &syntax, const std::string &type)
Register a type with a block.
Base class for time integrators.
Base class for time stepping.
Times objects are under the hood Reporters, but limited to a vector of Real.
Base class for all Transfer objects.
Base class for user-specific data.
Base class for Postprocessors that produce a vector of values.
void petscSetDefaults(FEProblemBase &problem)
Sets the default options for PETSc.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
void setSolverDefaults(FEProblemBase &problem)
bool _deprecated_is_error
Variable to toggle only deprecated warnings as errors.
void registerObjects(Factory &factory, const std::set< std::string > &obj_labels)
bool _throw_on_error
Variable to turn on exceptions during mooseError(), should only be used within MOOSE unit tests or wh...
bool isSolverExecFlag(const ExecFlagType &exec_flag)
bool show_multiple
Set to false (the default) to display an error message only once for each error call code location (a...
void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
bool setColorConsole(bool use_color, bool force=false)
Turns color escape sequences on/off for info written to stdout.
void registerActions(Syntax &syntax, ActionFactory &action_factory)
Multiple Action class can be associated with a single input file section, in which case all associate...
void registerAll(Factory &f, ActionFactory &af, Syntax &s)
Register objects that are in MOOSE.
volatile std::sig_atomic_t interrupt_signal_number
Used by the signal handler to determine if we should write a checkpoint file out at any point during ...
bool _throw_on_warning
Variable to turn on exceptions during mooseWarning(), should only be used in MOOSE unit tests.
bool _warnings_are_errors
Variable to toggle any warning into an error (includes deprecated code warnings)
bool colorConsole()
Returns whether Console coloring is turned on (default: true).
void addActionTypes(Syntax &syntax)
static bool _color_console
std::string hitMessagePrefix(const hit::Node &node)
Get the prefix to be associated with a hit node for a message.
void associateSyntaxInner(Syntax &syntax, ActionFactory &action_factory)
MPI_Comm swapLibMeshComm(MPI_Comm new_comm)
Swap the libMesh MPI communicator out for ours.