https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MooseApp.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#ifdef MOOSE_LIBTORCH_ENABLED
13// Libtorch includes
14#include <torch/types.h>
15#include <torch/mps.h>
16#include <torch/cuda.h>
17#include <c10/core/DeviceType.h>
18#endif
19
20// MOOSE includes
21#include "Moose.h"
22#include "Builder.h"
23#include "ActionWarehouse.h"
24#include "Factory.h"
25#include "ActionFactory.h"
26#include "OutputWarehouse.h"
27#include "RestartableData.h"
28#include "RestartableDataMap.h"
30#include "PerfGraph.h"
31#include "PerfGraphInterface.h"
32#include "TheWarehouse.h"
33#include "RankMap.h"
34#include "MeshGeneratorSystem.h"
37#include "Backup.h"
38#include "MooseBase.h"
39#include "Capability.h"
40#include "MoosePassKey.h"
41#include "SystemInfo.h"
42#include "Syntax.h"
43
44#include "libmesh/parallel_object.h"
45#include "libmesh/mesh_base.h"
46#include "libmesh/point.h"
47
48// C++ includes
49#include <list>
50#include <map>
51#include <set>
52#include <unordered_set>
53#include <typeindex>
54#include <filesystem>
55#include <variant>
56
57// Forward declarations
58class AppFactory;
59class Executioner;
60class Executor;
61class NullExecutor;
62class FEProblemBase;
64class CommandLine;
66class ReporterData;
68class MultiApp;
69class MooseMesh;
70#ifdef MOOSE_MFEM_ENABLED
72#endif
73
74namespace libMesh
75{
76class ExodusII_IO;
77}
78namespace hit
79{
80class Node;
81}
82
83#ifdef MOOSE_KOKKOS_ENABLED
84namespace Moose::Kokkos
85{
86class MemoryPool;
87}
88#endif
89
90#ifdef MOOSE_UNIT_TEST
91// forward declare unit tests
92#include "gtest/gtest.h"
93class GTEST_TEST_CLASS_NAME_(CapabilitiesTest, mooseAppAddBoolCapability);
94class GTEST_TEST_CLASS_NAME_(CapabilitiesTest, mooseAppAddIntCapability);
95class GTEST_TEST_CLASS_NAME_(CapabilitiesTest, mooseAppAddStringCapability);
96class GTEST_TEST_CLASS_NAME_(CapabilitiesTest, mooseAppAddCapability);
97#endif
98
110{
111public:
112#ifdef MOOSE_LIBTORCH_ENABLED
114 torch::DeviceType getLibtorchDevice() const { return _libtorch_device; }
115#endif
116
123 {
128 std::vector<std::string> sub_transformed_vars;
130 std::vector<PostprocessorName> sub_transformed_pps;
131 };
132
134 static const std::string MESH_META_DATA_SUFFIX;
135
137
138 virtual ~MooseApp();
139
141
145 virtual std::string getPrintableName() const { return "Application"; }
146
147 virtual std::string appBinaryName() const
148 {
150 name = name.substr(0, name.find_last_of("-"));
151 if (name.find_first_of("/") != std::string::npos)
152 name = name.substr(name.find_first_of("/") + 1, std::string::npos);
153 return name;
154 }
155
160 int exitCode() const { return _exit_code; }
161
165 void setExitCode(const int exit_code) { _exit_code = exit_code; }
166
171 const RankMap & rankMap() { return _rank_map; }
172
177
185
189 virtual void run();
190
194 std::string getFrameworkVersion() const;
195
199 virtual std::string getVersion() const;
200
204 std::string getPrintableVersion() const;
205
209 virtual void setupOptions();
210
219
224
228 Syntax & syntax() { return _syntax; }
229
233 const std::vector<std::string> & getInputFileNames() const;
234
238 const std::string & getLastInputFileName() const;
239
244 void setOutputFileBase(const std::string & output_file_base);
245
256 std::string getOutputFileBase(bool for_non_moose_build_output = false) const;
257
261 void setOutputPosition(const Point & p);
262
267 std::list<std::string> getCheckpointDirectories() const;
268
273 std::list<std::string> getCheckpointFiles() const;
274
280
285 Point getOutputPosition() const { return _output_position; }
286
293 void setStartTime(Real time);
294
298 bool hasStartTime() const { return _start_time_set; }
299
303 Real getStartTime() const { return _start_time; }
304
309 void setGlobalTimeOffset(Real offset) { _global_time_offset = offset; }
310
316
322 std::string getFileName(bool stripLeadingPath = true) const;
323
327 void setErrorOverridden();
328
333
337 Executioner * getExecutioner() const;
338 Executor * getExecutor() const { return _executor.get(); }
339 NullExecutor * getNullExecutor() const { return _null_executor.get(); }
340 bool useExecutor() const { return _use_executor; }
341 FEProblemBase & feProblem() const;
342
346 void setExecutioner(std::shared_ptr<Executioner> && executioner) { _executioner = executioner; }
347 void setExecutor(std::shared_ptr<Executor> && executor) { _executor = executor; }
348 void
349 addExecutor(const std::string & type, const std::string & name, const InputParameters & params);
350
355 void addExecutorParams(const std::string & type,
356 const std::string & name,
357 const InputParameters & params);
358
363 const Parser & parser() const;
364 Parser & parser();
366
371 void createExecutors();
372
380 Executor & getExecutor(const std::string & name, bool fail_if_not_found = true);
381
390
394 bool & useNonlinear() { return _use_nonlinear; }
395
399 bool & useEigenvalue() { return _use_eigen_value; }
400
405
410
414 processor_id_type processor_id() const { return _comm->rank(); }
415
422
428 std::shared_ptr<CommandLine> commandLine() const { return _command_line; }
429
434 void setExodusFileRestart(bool flag) { _initial_from_file = flag; }
435
441
445 void setExReaderForRestart(std::shared_ptr<libMesh::ExodusII_IO> && exreader)
446 {
447 _ex_reader = exreader;
448 }
449
454
458 virtual void runInputFile();
459
463 virtual void executeExecutioner();
464
471
477 bool isRecovering() const;
478
485 bool isRestarting() const;
486
490 bool isSplitMesh() const;
491
493
496 bool hasRestartRecoverFileBase() const;
497 bool hasRecoverFileBase() const;
499
501
504 std::string getRestartRecoverFileBase() const { return _restart_recover_base; }
505 std::string getRecoverFileBase() const
506 {
507 mooseDeprecated("MooseApp::getRecoverFileBase is deprecated, use "
508 "MooseApp::getRestartRecoverFileBase() instead.");
510 }
512
516 void setRestartRecoverFileBase(const std::string & file_base)
517 {
518 if (file_base.empty())
520 else
521 _restart_recover_base = file_base;
522 }
523
529
534 bool testReStep() const { return _test_restep; }
535
544 void setOutputFileNumbers(const std::map<std::string, unsigned int> & numbers)
545 {
546 _output_file_numbers = numbers;
547 }
548
556 const std::map<std::string, unsigned int> & getOutputFileNumbers() const
557 {
559 }
560
565 const OutputWarehouse & getOutputWarehouse() const;
566
571 const SystemInfo & getSystemInfo() const { return _sys_info; }
572
574
579 void dynamicAllRegistration(const std::string & app_name,
580 Factory * factory,
581 ActionFactory * action_factory,
582 Syntax * syntax,
583 std::string library_path,
584 const std::string & library_name);
585 void dynamicAppRegistration(const std::string & app_name,
586 std::string library_path,
587 const std::string & library_name,
588 bool lib_load_deps);
590
597 std::string appNameToLibName(const std::string & app_name) const;
598
602 std::string libNameToAppName(const std::string & library_name) const;
603
607 std::set<std::string> getLoadedLibraryPaths() const;
608
612 std::set<std::string> getLibrarySearchPaths(const std::string & library_path_from_param) const;
613
618
619 /*
620 * Register a piece of restartable data. This is data that will get
621 * written / read to / from a restart file.
622 *
623 * @param data The actual data object.
624 * @param tid The thread id of the object. Use 0 if the object is not threaded.
625 * @param read_only Restrict the data for read-only
626 * @param metaname (optional) register the data to the meta data storage (tid must be 0)
627 */
628 RestartableDataValue & registerRestartableData(std::unique_ptr<RestartableDataValue> data,
629 THREAD_ID tid,
630 bool read_only,
631 const RestartableDataMapName & metaname = "");
632
633 /*
634 * Deprecated method to register a piece of restartable data.
635 *
636 * Use the call without a data name instead.
637 */
639 std::unique_ptr<RestartableDataValue> data,
640 THREAD_ID tid,
641 bool read_only,
642 const RestartableDataMapName & metaname = "");
643
644 /*
645 * Check if a restartable meta data exists or not.
646 *
647 * @param name The full (unique) name.
648 * @param metaname The name to the meta data storage
649 */
650 bool hasRestartableMetaData(const std::string & name,
651 const RestartableDataMapName & metaname) const;
652
653 /*
654 * Retrieve restartable meta data from restartable data map
655 *
656 * @param name The full (unique) name.
657 * @param metaname The name to the meta data storage
658 * @return A reference to the restartable meta data value
659 */
661 const RestartableDataMapName & metaname,
662 THREAD_ID tid);
663
669 const std::filesystem::path & folder_base);
674 void loadRestartableMetaData(const std::filesystem::path & folder_base);
675
681 std::vector<std::filesystem::path>
683 const std::filesystem::path & folder_base);
689 std::vector<std::filesystem::path>
690 writeRestartableMetaData(const std::filesystem::path & folder_base);
691
697 const std::vector<RestartableDataMap> & getRestartableData() const { return _restartable_data; }
698 std::vector<RestartableDataMap> & getRestartableData() { return _restartable_data; }
700
705
710
720 void registerRestartableDataMapName(const RestartableDataMapName & name, std::string suffix = "");
721
725 const std::string & getRestartableDataMapName(const RestartableDataMapName & name) const;
726
732
738 std::vector<std::filesystem::path> backup(const std::filesystem::path & folder_base);
744 std::unique_ptr<Backup> backup();
745
749 bool hasInitialBackupMesh() const;
750
755
760
765
770
774 virtual void preBackup() {}
775
787 void restore(const std::filesystem::path & folder_base, const bool for_restart);
788
800 void restore(std::unique_ptr<Backup> backup, const bool for_restart);
801
808 virtual void postRestore(const bool /* for_restart */) {}
809
822 void restoreFromInitialBackup(const bool for_restart);
823
833 std::unique_ptr<Backup> finalizeRestore();
834
844 const THREAD_ID tid,
846 {
847 return _rd_reader.restoreDataIfAvailable(value, tid, {});
848 }
849
853 virtual std::string header() const;
854
859 unsigned int multiAppLevel() const { return _multiapp_level; }
860
865 unsigned int multiAppNumber() const { return _multiapp_number; }
866
870 bool isUltimateMaster() const { return !_multiapp_level; }
871
875 bool useMasterMesh() const { return _use_master_mesh; }
876
880 const MooseMesh * masterMesh() const { return _master_mesh; }
881
886
891
896
906 void addMeshGenerator(const std::string & type,
907 const std::string & name,
908 const InputParameters & params)
909 {
911 }
912
916 bool hasMeshGenerator(const MeshGeneratorName & name) const
917 {
919 }
920
924 const MeshGenerator & getMeshGenerator(const std::string & name) const
925 {
927 }
928
936
942 std::vector<std::string> getMeshGeneratorNames() const
943 {
945 }
946
956 const MeshGenerator &
957 appendMeshGenerator(const std::string & type, const std::string & name, InputParameters params)
958 {
960 }
961
968 virtual bool constructingMeshGenerators() const;
969
971
975 void setRestart(bool value);
976 void setRecover(bool value);
978
980 bool checkInput() const { return _check_input; }
981
983 bool getFPTrapFlag() const { return _trap_fpe; }
984
988 bool hasRelationshipManager(const std::string & name) const;
989
996 bool addRelationshipManager(std::shared_ptr<RelationshipManager> relationship_manager);
997
999 static const std::string & checkpointSuffix();
1001 static std::filesystem::path metaDataFolderBase(const std::filesystem::path & folder_base,
1002 const std::string & map_suffix);
1004 std::filesystem::path restartFolderBase(const std::filesystem::path & folder_base) const;
1005
1013 const hit::Node * getCurrentActionHitNode() const;
1014
1021 bool attach_geometric_rm_final = false);
1022
1029 void attachRelationshipManagers(MeshBase & mesh, MooseMesh & moose_mesh);
1030
1034 const std::vector<std::shared_ptr<RelationshipManager>> & getReleationshipManagers();
1035
1039 std::vector<std::pair<std::string, std::string>> getRelationshipManagerInfo() const;
1040
1045
1051 bool hasInitialBackup() const
1052 {
1053 return _initial_backup != nullptr && *_initial_backup != nullptr;
1054 }
1055
1060
1061 // Return the communicator for this application
1062 const std::shared_ptr<libMesh::Parallel::Communicator> getCommunicator() const { return _comm; }
1063
1067 const std::set<std::shared_ptr<RelationshipManager>> & relationshipManagers() const
1068 {
1070 }
1071
1075 void checkMetaDataIntegrity() const;
1076
1078
1084
1087
1093 virtual bool errorOnJacobianNonzeroReallocation() const { return false; }
1094
1100 template <class T>
1101 void registerInterfaceObject(T & interface);
1102
1108 template <class T>
1109 const std::vector<T *> & getInterfaceObjects() const;
1110
1111 static void addAppParam(InputParameters & params);
1112 static void addInputParam(InputParameters & params);
1113
1118 bool forceRestart() const { return _force_restart; }
1119
1122
1125
1126#ifdef MOOSE_MFEM_ENABLED
1133 void setMFEMDevice(const std::string & executioner_device, const bool & gpu_aware_mpi);
1134#endif
1135
1144 {
1145#ifdef MOOSE_KOKKOS_ENABLED
1146#ifdef MOOSE_ENABLE_KOKKOS_GPU
1147 return _has_kokkos_gpus;
1148#else
1149 return true;
1150#endif
1151#else
1152 return false;
1153#endif
1154 }
1155
1156#ifdef MOOSE_KOKKOS_ENABLED
1162 void allocateKokkosMemoryPool(std::size_t size, unsigned int ways) const;
1163
1169#endif
1170
1174 static bool isRelocated();
1175
1179 static bool isInTree();
1180
1181protected:
1182#ifdef MOOSE_UNIT_TEST
1183 FRIEND_TEST(::CapabilitiesTest, mooseAppAddBoolCapability);
1184 FRIEND_TEST(::CapabilitiesTest, mooseAppAddIntCapability);
1185 FRIEND_TEST(::CapabilitiesTest, mooseAppAddStringCapability);
1186 FRIEND_TEST(::CapabilitiesTest, mooseAppAddCapability);
1187#endif
1188
1192 void dynamicRegistration(const libMesh::Parameters & params);
1193
1198 void loadLibraryAndDependencies(const std::string & library_filename,
1199 const libMesh::Parameters & params,
1200 bool load_dependencies = true);
1201
1204
1214 void registerRestartableNameWithFilter(const std::string & name,
1216
1221 void errorCheck();
1222
1227 void outputMachineReadableData(const std::string & param,
1228 const std::string & start_marker,
1229 const std::string & end_marker,
1230 const std::string & data) const;
1231
1240 static Moose::Capability & addBoolCapability(const std::string_view capability,
1241 const bool value,
1242 const std::string_view doc);
1243
1252 static Moose::Capability &
1253 addIntCapability(const std::string_view capability, const int value, const std::string_view doc);
1254
1263 static Moose::Capability & addStringCapability(const std::string_view capability,
1264 const std::string_view value,
1265 const std::string_view doc);
1266
1280 static Moose::Capability & addCapability(const std::string_view capability,
1281 const Moose::Capability::Value & value,
1282 const std::string_view doc);
1283
1285 const std::string _type;
1286
1288 const std::shared_ptr<libMesh::Parallel::Communicator> _comm;
1289
1292
1295
1298
1301
1304
1307
1310
1313
1316 std::unique_ptr<InputParameterWarehouse> _input_parameter_warehouse;
1317
1320
1323
1326
1328 const std::shared_ptr<Parser> _parser;
1329
1331 const std::shared_ptr<CommandLine> _command_line;
1332
1335
1338
1341
1343 std::vector<RestartableDataMap> _restartable_data;
1344
1350
1353
1356
1359
1361 std::shared_ptr<Executioner> _executioner;
1362
1364 std::shared_ptr<Executor> _executor;
1365
1367 std::map<std::string, std::shared_ptr<Executor>> _executors;
1368
1371 std::unordered_map<std::string, std::pair<std::string, std::unique_ptr<InputParameters>>>
1373
1377
1380 const bool _use_executor;
1381
1383 std::shared_ptr<NullExecutor> _null_executor;
1384
1387
1390
1398
1400
1408
1411
1413 std::shared_ptr<libMesh::ExodusII_IO> _ex_reader;
1414
1417
1420
1423
1426
1428 const bool _use_split;
1429
1431 const bool _force_restart;
1432
1435
1438
1442 const bool _test_restep;
1443
1445 std::map<std::string, unsigned int> _output_file_numbers;
1446
1448 const bool _check_input;
1449
1451 std::set<std::shared_ptr<RelationshipManager>> _relationship_managers;
1452
1454 std::map<Moose::RelationshipManagerType, std::set<const RelationshipManager *>>
1456
1461 std::unordered_map<RelationshipManager *, std::shared_ptr<libMesh::GhostingFunctor>>
1463
1465 {
1467 std::string full_path;
1468 std::unordered_set<std::string> entry_symbols;
1469 };
1470
1472 std::unordered_map<std::string, DynamicLibraryInfo> _lib_handles;
1473
1474private:
1480 std::optional<THREAD_ID> requestedNumThreads() const;
1481
1488
1497 void recursivelyCreateExecutors(const std::string & current_executor_name,
1498 std::list<std::string> & possible_roots,
1499 std::list<std::string> & current_branch);
1500
1511 void removeRelationshipManager(std::shared_ptr<RelationshipManager> relationship_manager);
1512
1513#ifdef MOOSE_LIBTORCH_ENABLED
1520 torch::DeviceType determineLibtorchDeviceType(const MooseEnum & device) const;
1521#endif
1522
1529
1530 template <class T>
1532 {
1533 std::vector<T *> _objects;
1534 };
1536
1561 void createMinimalApp();
1562
1567 void setCheckUnusedFlag(bool warn_is_error = false);
1568
1576 bool hasRMClone(const RelationshipManager & template_rm, const MeshBase & mesh) const;
1577
1583 const MeshBase & mesh) const;
1584
1596 MooseMesh & moose_mesh,
1597 MeshBase & mesh,
1598 const libMesh::DofMap * dof_map = nullptr);
1599
1607
1615
1620 bool showInputs() const;
1621
1625 virtual std::string getInstallableInputs() const;
1626
1633 bool copyInputs();
1634
1640 bool runInputs();
1641
1650 void requestCitations();
1651
1657 void collectCitations(std::map<std::string, std::string> & citations) const;
1658
1669 static Moose::Capability & addCapabilityInternal(const std::string_view capability,
1670 const Moose::Capability::Value & value,
1671 const std::string_view doc);
1672
1674 std::unordered_map<RestartableDataMapName, std::pair<RestartableDataMap, std::string>>
1676
1683
1685 std::unique_ptr<TheWarehouse> _the_warehouse;
1686
1688 const unsigned int _multiapp_level;
1689
1691 const unsigned int _multiapp_number;
1692
1695
1698
1701
1704
1707
1709
1718
1720 std::streambuf * _output_buffer_cache;
1721
1724
1726 bool _cpu_profiling = false;
1727
1729 bool _heap_profiling = false;
1730
1733 std::map<const RelationshipManager *,
1734 std::map<const MeshBase *, std::unique_ptr<RelationshipManager>>>
1736
1738 std::map<std::type_index, std::unique_ptr<InterfaceRegistryObjectsBase>> _interface_registry;
1739
1744 std::unique_ptr<Backup> * const _initial_backup;
1745
1748
1751
1752#ifdef MOOSE_LIBTORCH_ENABLED
1754 const torch::DeviceType _libtorch_device;
1755#endif
1756
1757 // Allow FEProblemBase to set the recover/restart state, so make it a friend
1758 friend class FEProblemBase;
1759 friend class Restartable;
1760 friend class SubProblem;
1761
1762#ifdef MOOSE_KOKKOS_ENABLED
1767
1772
1776 bool _has_kokkos_gpus = false;
1777#endif
1778};
1779
1780template <class T>
1781void
1783{
1784 static_assert(!std::is_base_of<MooseObject, T>::value, "T is not an interface");
1785
1786 InterfaceRegistryObjects<T> * registry = nullptr;
1787 auto it = _interface_registry.find(typeid(T));
1788 if (it == _interface_registry.end())
1789 {
1790 auto new_registry = std::make_unique<InterfaceRegistryObjects<T>>();
1791 registry = new_registry.get();
1792 _interface_registry.emplace(typeid(T), std::move(new_registry));
1793 }
1794 else
1795 registry = cast_ptr<InterfaceRegistryObjects<T> *>(it->second.get());
1796
1797 mooseAssert(std::count(registry->_objects.begin(), registry->_objects.end(), &interface) == 0,
1798 "Interface already registered");
1799 registry->_objects.push_back(&interface);
1800}
1801
1802template <class T>
1803const std::vector<T *> &
1805{
1806 static_assert(!std::is_base_of<MooseObject, T>::value, "T is not an interface");
1807
1808 const auto it = _interface_registry.find(typeid(T));
1809 if (it != _interface_registry.end())
1810 return cast_ptr<InterfaceRegistryObjects<T> *>(it->second.get())->_objects;
1811 const static std::vector<T *> empty;
1812 return empty;
1813}
class GTEST_TEST_CLASS_NAME_(CapabilitiesTest, mooseAppAddBoolCapability)
std::string RestartableDataMapName
Definition MooseTypes.h:242
unsigned int THREAD_ID
Definition MooseTypes.h:237
std::unordered_set< std::string > DataNames
Specialized factory for generic Action System objects.
Storage for action instances.
Generic AppFactory class for building Application objects.
Definition AppFactory.h:55
System that manages ChainControls.
This class wraps provides and tracks access to command line parameters.
Definition CommandLine.h:30
A MultiMooseEnum object to hold "execute_on" flags.
Executioners are objects that do the actual work of solving your problem.
Definition Executioner.h:37
The Executor class directs the execution flow of simulations.
Definition Executor.h:27
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Generic factory class for build all sorts of objects.
Definition Factory.h:29
Storage container for all InputParamter objects.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
System that manages MeshGenerators.
void addMeshGenerator(const std::string &type, const std::string &name, const InputParameters &params)
Add a mesh generator that will act on the meshes in the system.
std::vector< std::string > getMeshGeneratorNames() const
Get names of all mesh generators Note: This function should be called after all mesh generators are a...
bool hasMeshGenerator(const MeshGeneratorName &name) const
static std::string mainMeshGeneratorName()
The name reserved for the "main" mesh generator which is the one used for the numerical solver downst...
const MeshGenerator & appendMeshGenerator(const std::string &type, const std::string &name, InputParameters params)
Append a mesh generator that will act on the current final mesh generator in the system.
std::unique_ptr< libMesh::MeshBase > getSavedMesh(const std::string &name)
Get the saved mesh by name.
const MeshGenerator & getMeshGenerator(const std::string &name) const
MeshGenerators are objects that can modify or add to an existing mesh.
Base class for MOOSE-based applications.
Definition MooseApp.h:110
const bool _distributed_mesh_on_command_line
This variable indicates that DistributedMesh should be used for the libMesh mesh underlying MooseMesh...
Definition MooseApp.h:1416
bool _heap_profiling
Memory profiling.
Definition MooseApp.h:1729
void loadRestartableMetaData(const std::filesystem::path &folder_base)
Loads all available restartable meta data if it is available with the folder base folder_base.
Definition MooseApp.C:2554
const bool _use_split
Whether or not we are using a (pre-)split mesh (automatically DistributedMesh)
Definition MooseApp.h:1428
const std::vector< std::string > & getInputFileNames() const
Definition MooseApp.C:1527
const RankMap & rankMap()
The RankMap is a useful object for determining how the processes are laid out on the physical nodes o...
Definition MooseApp.h:171
const MooseMesh *const _master_mesh
The mesh from master app.
Definition MooseApp.h:1697
std::shared_ptr< libMesh::ExodusII_IO > _ex_reader
The Exodus reader when _initial_from_file is set to true.
Definition MooseApp.h:1413
bool restoredInitialBackupMesh() const
Whether this app has restored mesh topology from its initial Backup object.
Definition MooseApp.h:754
bool isKokkosAvailable() const
Get whether Kokkos is available.
Definition MooseApp.h:1143
FixedPointConfig _fixed_point_config
Multiapp-related fixed point algorithm configuration details primarily intended to be passed to and u...
Definition MooseApp.h:1376
const torch::DeviceType _libtorch_device
The libtorch device this app is using (converted from compute_device)
Definition MooseApp.h:1754
static void addAppParam(InputParameters &params)
Definition MooseApp.C:261
FixedPointConfig & fixedPointConfig()
This info is stored here because we need a "globalish" place to put it in order to allow communicatio...
Definition MooseApp.h:389
processor_id_type processor_id() const
Returns the MPI processor ID of the current processor.
Definition MooseApp.h:414
ActionWarehouse & actionWarehouse()
Return a writable reference to the ActionWarehouse associated with this app.
Definition MooseApp.h:214
void attachRelationshipManagers(Moose::RelationshipManagerType rm_type, bool attach_geometric_rm_final=false)
Attach the relationship managers of the given type Note: Geometric relationship managers that are sup...
Definition MooseApp.C:3213
bool hasRestartableDataMap(const RestartableDataMapName &name) const
Definition MooseApp.C:3447
void possiblyLoadRestartableMetaData(const RestartableDataMapName &name, const std::filesystem::path &folder_base)
Loads the restartable meta data for name if it is available with the folder base folder_base.
Definition MooseApp.C:2539
void restoreMeshFromInitialBackup(MooseMesh &mesh)
Restore mesh from this app's initial Backup object and consume the mesh checkpoint entries.
Definition MooseApp.C:1758
const std::shared_ptr< CommandLine > _command_line
The CommandLine object.
Definition MooseApp.h:1331
Syntax & syntax()
Returns a writable reference to the syntax object.
Definition MooseApp.h:228
bool isSplitMesh() const
Whether or not this is a split mesh operation.
Definition MooseApp.C:1690
THREAD_ID _num_threads
The number of threads this application uses.
Definition MooseApp.h:1340
void requestCitations()
Handles the –citations command-line option: registers with PETSc the BibTeX entries that should be ci...
Definition MooseApp.C:2145
void registerRestartableNameWithFilter(const std::string &name, Moose::RESTARTABLE_FILTER filter)
NOTE: This is an internal function meant for MOOSE use only!
Definition MooseApp.C:1710
std::string getPrintableVersion() const
Non-virtual method for printing out the version string in a consistent format.
Definition MooseApp.C:1019
std::unordered_map< RelationshipManager *, std::shared_ptr< libMesh::GhostingFunctor > > _undisp_to_disp_rms
A map from undisplaced relationship managers to their displaced clone (stored as the base GhostingFun...
Definition MooseApp.h:1462
bool unusedFlagIsError() const
Returns whether the flag for unused parameters is set to throw an error.
Definition MooseApp.h:1124
const std::vector< std::shared_ptr< RelationshipManager > > & getReleationshipManagers()
Retrieve the relationship managers.
void registerRestartableDataMapName(const RestartableDataMapName &name, std::string suffix="")
Reserve a location for storing custom RestartableDataMap objects.
Definition MooseApp.C:3453
std::set< std::string > getLibrarySearchPaths(const std::string &library_path_from_param) const
Return the paths searched by MOOSE when loading libraries.
Definition MooseApp.C:2850
MeshGeneratorSystem _mesh_generator_system
The system that manages the MeshGenerators.
Definition MooseApp.h:1703
void restoreFromInitialBackup(const bool for_restart)
Restores from a "initial" backup, that is, one set in _initial_backup.
Definition MooseApp.C:1809
std::vector< std::string > getMeshGeneratorNames() const
Definition MooseApp.h:942
const DataNames & getRecoverableData() const
Return a reference to the recoverable data object.
Definition MooseApp.h:731
void queryKokkosGPUs()
Query the Kokkos GPUs in the system and check whether every process has an associated GPU.
bool getFPTrapFlag() const
Returns whether FPE trapping is turned on (either because of debug or user requested)
Definition MooseApp.h:983
DataNames _recoverable_data_names
Data names that will only be read from the restart file during RECOVERY.
Definition MooseApp.h:1349
SolutionInvalidity & _solution_invalidity
The SolutionInvalidity object for this application.
Definition MooseApp.h:1355
void setExReaderForRestart(std::shared_ptr< libMesh::ExodusII_IO > &&exreader)
Set the Exodus reader to restart variables from an Exodus mesh file.
Definition MooseApp.h:445
void setStartTime(Real time)
Set the starting time for the simulation.
Definition MooseApp.C:2405
std::shared_ptr< Executioner > _executioner
Pointer to the executioner of this run (typically build by actions)
Definition MooseApp.h:1361
bool hasRelationshipManager(const std::string &name) const
Returns a Boolean indicating whether a RelationshipManater exists with the same name.
Definition MooseApp.C:2974
void addMeshGenerator(const std::string &type, const std::string &name, const InputParameters &params)
Add a mesh generator that will act on the meshes in the system.
Definition MooseApp.h:906
void setOutputPosition(const Point &p)
Tell the app to output in a specific position.
Definition MooseApp.C:2355
Point getOutputPosition() const
Get the output position.
Definition MooseApp.h:285
void setOutputFileBase(const std::string &output_file_base)
Override the selection of the output file base name.
Definition MooseApp.C:1550
bool hasRestartRecoverFileBase() const
Return true if the recovery file base is set.
Definition MooseApp.C:1696
static void addInputParam(InputParameters &params)
Definition MooseApp.C:268
bool forceRestart() const
Whether or not we are forcefully restarting (allowing the load of potentially incompatibie checkpoint...
Definition MooseApp.h:1118
bool _start_time_set
Whether or not an start time has been set.
Definition MooseApp.h:1303
std::set< std::shared_ptr< RelationshipManager > > _relationship_managers
The relationship managers that have been added.
Definition MooseApp.h:1451
void setExecutioner(std::shared_ptr< Executioner > &&executioner)
Set the Executioner for this App.
Definition MooseApp.h:346
std::vector< RestartableDataMap > _restartable_data
Where the restartable data is held (indexed on tid)
Definition MooseApp.h:1343
void setExodusFileRestart(bool flag)
Set the flag to indicate whether or not we need to use a separate Exodus reader to read the mesh BEFO...
Definition MooseApp.h:434
bool restoreDataIfAvailable(RestartableDataValue &value, const THREAD_ID tid, Moose::PassKey< ReporterData >)
Restores value in place from the checkpoint reader if it is present in the checkpoint and has not yet...
Definition MooseApp.h:843
void dynamicAllRegistration(const std::string &app_name, Factory *factory, ActionFactory *action_factory, Syntax *syntax, std::string library_path, const std::string &library_name)
Thes methods are called to register applications or objects on demand.
Definition MooseApp.C:2647
void setGlobalTimeOffset(Real offset)
Each App has it's own local time.
Definition MooseApp.h:309
bool addRelationshipManager(std::shared_ptr< RelationshipManager > relationship_manager)
Transfers ownership of a RelationshipManager to the application for lifetime management.
Definition MooseApp.C:3000
ActionFactory & getActionFactory()
Retrieve a writable reference to the ActionFactory associated with this App.
Definition MooseApp.h:409
bool hasRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname) const
Definition MooseApp.C:2510
virtual std::string header() const
Returns a string to be printed at the beginning of a simulation.
Definition MooseApp.C:2882
UNUSED_CHECK
Indicates whether warnings, errors, or no output is displayed when unused parameters are detected.
Definition MooseApp.h:1393
@ WARN_UNUSED
Definition MooseApp.h:1395
@ ERROR_UNUSED
Definition MooseApp.h:1396
std::string getOutputFileBase(bool for_non_moose_build_output=false) const
Get the output file base name.
Definition MooseApp.C:1541
void setExecutor(std::shared_ptr< Executor > &&executor)
Definition MooseApp.h:347
std::string getRecoverFileBase() const
Definition MooseApp.h:505
const std::shared_ptr< libMesh::Parallel::Communicator > _comm
The MPI communicator this App is going to use.
Definition MooseApp.h:1288
bool testReStep() const
Whether or not this simulation should fail a timestep and repeat (for testing).
Definition MooseApp.h:534
std::unique_ptr< TheWarehouse > _the_warehouse
The combined warehouse for storing any MooseObject based object.
Definition MooseApp.h:1685
bool hasRecoverFileBase() const
Definition MooseApp.C:1702
std::map< std::string, unsigned int > _output_file_numbers
Map of outputer name and file number (used by MultiApps to propagate file numbers down through the mu...
Definition MooseApp.h:1445
virtual void executeExecutioner()
Execute the Executioner that was built.
Definition MooseApp.C:1646
OutputWarehouse & getOutputWarehouse()
Get the OutputWarehouse objects.
Definition MooseApp.C:2418
NullExecutor * getNullExecutor() const
Definition MooseApp.h:339
static std::filesystem::path metaDataFolderBase(const std::filesystem::path &folder_base, const std::string &map_suffix)
The file suffix for meta data (header and data)
Definition MooseApp.C:3055
const std::vector< RestartableDataMap > & getRestartableData() const
Return reference to the restartable data object.
Definition MooseApp.h:697
THREAD_ID determineNumThreads() const
Determines the number of threads this application should use from the [Application] block's num_threa...
Definition MooseApp.C:635
std::map< std::string, std::shared_ptr< Executor > > _executors
Pointers to all of the Executors for this run.
Definition MooseApp.h:1367
static Moose::Capability & addBoolCapability(const std::string_view capability, const bool value, const std::string_view doc)
Register a boolean capability.
Definition MooseApp.C:3580
bool hasStartTime() const
Definition MooseApp.h:298
bool runInputs()
Handles the run input parameter logic: Checks to see whether a directory exists in user space and lau...
Definition MooseApp.C:2283
void setRestart(bool value)
Sets the restart/recover flags.
Definition MooseApp.C:2888
std::string getFileName(bool stripLeadingPath=true) const
Return the primary (first) filename that was parsed Note: When stripLeadingPath is false,...
Definition MooseApp.C:2412
bool isRestarting() const
Whether or not this is a "restart" calculation.
Definition MooseApp.C:1684
virtual bool constructingMeshGenerators() const
Whether this app is constructing mesh generators.
Definition MooseApp.C:3503
void loadLibraryAndDependencies(const std::string &library_filename, const libMesh::Parameters &params, bool load_dependencies=true)
Recursively loads libraries and dependencies in the proper order to fully register a MOOSE applicatio...
Definition MooseApp.C:2689
torch::DeviceType determineLibtorchDeviceType(const MooseEnum &device) const
Function to determine the device which should be used by libtorch on this application.
Definition MooseApp.C:3511
std::unordered_map< std::string, DynamicLibraryInfo > _lib_handles
The library archive (name only), registration method and the handle to the method.
Definition MooseApp.h:1472
const unsigned int _multiapp_number
Numbering in all the sub-apps on the same level.
Definition MooseApp.h:1691
ActionFactory _action_factory
The Factory responsible for building Actions.
Definition MooseApp.h:1319
unsigned int multiAppLevel() const
The MultiApp Level.
Definition MooseApp.h:859
SolutionInvalidity & createRecoverableSolutionInvalidity()
Creates a recoverable SolutionInvalidity.
Definition MooseApp.C:3490
unsigned int multiAppNumber() const
The MultiApp number.
Definition MooseApp.h:865
const std::string _type
The string representation of the type of this object as registered (see registerApp(AppName))
Definition MooseApp.h:1285
Executioner * getExecutioner() const
Retrieve the Executioner for this App.
Definition MooseApp.C:2024
virtual ~MooseApp()
ChainControlDataSystem & getChainControlDataSystem()
Gets the system that manages the ChainControls.
Definition MooseApp.h:895
void collectCitations(std::map< std::string, std::string > &citations) const
Collects the BibTeX citations for the modules/objects constructed in this app and the finite element ...
Definition MooseApp.C:2110
torch::DeviceType getLibtorchDevice() const
Get the device torch is supposed to be running on.
Definition MooseApp.h:114
virtual void run()
Run the application.
Definition MooseApp.C:2036
Executor * getExecutor() const
Definition MooseApp.h:338
bool _output_position_set
Whether or not an output position has been set for this app.
Definition MooseApp.h:1297
std::unique_ptr< Backup > backup()
Backs up the application memory in a Backup.
Definition MooseApp.C:1736
const MooseMesh * masterMesh() const
Returns a pointer to the master mesh.
Definition MooseApp.h:880
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
Definition MooseApp.h:404
std::map< Moose::RelationshipManagerType, std::set< const RelationshipManager * > > _attached_relationship_managers
The relationship managers that have been attached (type -> RMs)
Definition MooseApp.h:1455
Real _start_time
The time at which to start the simulation.
Definition MooseApp.h:1306
Real _global_time_offset
Offset of the local App time to the "global" problem time.
Definition MooseApp.h:1309
const Parser & parser() const
Definition MooseApp.C:1888
std::vector< std::pair< std::string, std::string > > getRelationshipManagerInfo() const
Returns the Relationship managers info suitable for printing.
Definition MooseApp.C:3328
bool _recover
Whether or not this is a recovery run.
Definition MooseApp.h:1419
bool hasOutputPosition() const
Whether or not an output position has been set.
Definition MooseApp.h:279
std::unique_ptr< Backup > finalizeRestore()
Finalizes (closes) the restoration process done in restore().
Definition MooseApp.C:1816
std::unordered_map< RestartableDataMapName, std::pair< RestartableDataMap, std::string > > _restartable_meta_data
General storage for custom RestartableData that can be added to from outside applications.
Definition MooseApp.h:1675
void outputMachineReadableData(const std::string &param, const std::string &start_marker, const std::string &end_marker, const std::string &data) const
Outputs machine readable data (JSON, YAML, etc.) either to the screen (if no filename was provided as...
Definition MooseApp.C:3553
static bool isRelocated()
Definition MooseApp.C:3621
virtual bool errorOnJacobianNonzeroReallocation() const
Whether this application should by default error on Jacobian nonzero reallocations.
Definition MooseApp.h:1093
bool meshChangedForBackup() const
Whether this app requires mesh topology data in its next Backup object.
Definition MooseApp.h:764
ActionWarehouse _action_warehouse
Where built actions are stored.
Definition MooseApp.h:1322
FRIEND_TEST(::CapabilitiesTest, mooseAppAddIntCapability)
static InputParameters validParams()
Definition MooseApp.C:275
void registerInterfaceObject(T &interface)
Registers an interface object for accessing with getInterfaceObjects.
Definition MooseApp.h:1782
void removeRelationshipManager(std::shared_ptr< RelationshipManager > relationship_manager)
Purge this relationship manager from meshes and DofMaps and finally from us.
Definition MooseApp.C:3102
static const std::string & checkpointSuffix()
The file suffix for the checkpoint mesh.
Definition MooseApp.C:3048
bool & useNonlinear()
Returns a writable Boolean indicating whether this app will use a Nonlinear or Eigen System.
Definition MooseApp.h:394
void setRestartRecoverFileBase(const std::string &file_base)
mutator for recover_base (set by RecoverBaseAction)
Definition MooseApp.h:516
const std::string & getRestartableDataMapName(const RestartableDataMapName &name) const
Definition MooseApp.C:3463
void addExecutor(const std::string &type, const std::string &name, const InputParameters &params)
Definition MooseApp.C:1868
bool _initial_from_file
This variable indicates when a request has been made to restart from an Exodus file.
Definition MooseApp.h:1410
Real getGlobalTimeOffset() const
Each App has it's own local time.
Definition MooseApp.h:315
void createExecutors()
After adding all of the Executor Params - this function will actually cause all of them to be built.
Definition MooseApp.C:1953
bool _use_nonlinear
Boolean to indicate whether to use a Nonlinear or EigenSystem (inspected by actions)
Definition MooseApp.h:1386
bool isUltimateMaster() const
Whether or not this app is the ultimate master app.
Definition MooseApp.h:870
enum MooseApp::UNUSED_CHECK _enable_unused_check
const Moose::Kokkos::MemoryPool & getKokkosMemoryPool() const
Get Kokkos memory pool.
bool _ready_to_exit
Definition MooseApp.h:1405
const SystemInfo & getSystemInfo() const
Get SystemInfo object.
Definition MooseApp.h:571
std::unique_ptr< InputParameterWarehouse > _input_parameter_warehouse
Input parameter storage structure; unique_ptr so we can control its destruction order.
Definition MooseApp.h:1316
Point _output_position
The output position.
Definition MooseApp.h:1300
OutputWarehouse _output_warehouse
OutputWarehouse object for this App.
Definition MooseApp.h:1325
std::list< std::string > getCheckpointDirectories() const
Get all checkpoint directories.
Definition MooseApp.C:2366
void createMinimalApp()
Method for creating the minimum required actions for an application (no input file)
Definition MooseApp.C:2900
bool _restored_initial_backup_mesh
Whether mesh topology has been restored from the initial Backup object.
Definition MooseApp.h:1747
ChainControlDataSystem _chain_control_system
The system that manages the ChainControls.
Definition MooseApp.h:1706
bool hasInitialBackupMesh() const
Whether this app has an initial Backup object with mesh checkpoint entries.
Definition MooseApp.C:1752
virtual std::string appBinaryName() const
Definition MooseApp.h:147
Factory _factory
Definition MooseApp.h:1399
Moose::Builder & builder()
Returns a writable reference to the builder.
Definition MooseApp.h:223
THREAD_ID numThreads() const
Returns the number of threads this application uses.
Definition MooseApp.h:421
std::shared_ptr< NullExecutor > _null_executor
Used to return an executor that does nothing.
Definition MooseApp.h:1383
PerfGraph & createRecoverablePerfGraph()
Creates a recoverable PerfGraph.
Definition MooseApp.C:3472
void deallocateKokkosMemoryPool()
Deallocate Kokkos memory pool.
bool _restart
Whether or not this is a restart run.
Definition MooseApp.h:1422
void dynamicRegistration(const libMesh::Parameters &params)
Helper method for dynamic loading of objects.
Definition MooseApp.C:2676
bool _has_kokkos_gpus
Flag whether every process has an associated Kokkos GPU.
Definition MooseApp.h:1776
const MooseMesh *const _master_displaced_mesh
The displaced mesh from master app.
Definition MooseApp.h:1700
std::unordered_map< std::string, std::pair< std::string, std::unique_ptr< InputParameters > > > _executor_params
Used in building the Executors Maps the name of the Executor block to the <type, params>
Definition MooseApp.h:1372
bool getDistributedMeshOnCommandLine() const
Returns true if the user specified –distributed-mesh (or –parallel-mesh, for backwards compatibility)...
Definition MooseApp.h:470
RestartableDataValue & registerRestartableData(std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
Definition MooseApp.C:2458
const bool _use_master_mesh
Whether to use the parent app mesh for this app.
Definition MooseApp.h:1694
std::string _output_file_base
The output file basename.
Definition MooseApp.h:1291
const unsigned int _multiapp_level
Level of multiapp, the master is level 0. This used by the Console to indent output.
Definition MooseApp.h:1688
void checkMetaDataIntegrity() const
Function to check the integrity of the restartable meta data structure.
Definition MooseApp.C:3404
void errorCheck()
Runs post-initialization error checking that cannot be run correctly unless the simulation has been f...
Definition MooseApp.C:1610
const std::vector< T * > & getInterfaceObjects() const
Gets the registered interface objects for a given interface.
Definition MooseApp.h:1804
RelationshipManager & createRMFromTemplateAndInit(const RelationshipManager &template_rm, MooseMesh &moose_mesh, MeshBase &mesh, const libMesh::DofMap *dof_map=nullptr)
Take an input relationship manager, clone it, and then initialize it with provided mesh and optional ...
Definition MooseApp.C:3144
const std::string & getLastInputFileName() const
Definition MooseApp.C:1534
Moose::Builder _builder
Builder for building app related parser tree.
Definition MooseApp.h:1337
static bool isInTree()
Definition MooseApp.C:3627
bool _cpu_profiling
CPU profiling.
Definition MooseApp.h:1726
std::unique_ptr< MeshBase > getMeshGeneratorMesh()
Definition MooseApp.h:932
void dynamicAppRegistration(const std::string &app_name, std::string library_path, const std::string &library_name, bool lib_load_deps)
Definition MooseApp.C:2590
const std::shared_ptr< libMesh::Parallel::Communicator > getCommunicator() const
Definition MooseApp.h:1062
FEProblemBase & feProblem() const
Definition MooseApp.C:1861
const MeshGenerator & appendMeshGenerator(const std::string &type, const std::string &name, InputParameters params)
Append a mesh generator that will act on the final mesh generator in the system.
Definition MooseApp.h:957
void restore(const std::filesystem::path &folder_base, const bool for_restart)
Restore an application from file.
Definition MooseApp.C:1765
virtual void preBackup()
Insertion point for other apps that is called before backup()
Definition MooseApp.h:774
std::string getRestartRecoverFileBase() const
The file_base for the recovery file.
Definition MooseApp.h:504
SystemInfo _sys_info
System Information.
Definition MooseApp.h:1334
const ExecFlagEnum & getExecuteOnEnum() const
Return the app level ExecFlagEnum, this contains all the available flags for the app.
Definition MooseApp.h:1044
std::shared_ptr< CommandLine > commandLine() const
Get the command line.
Definition MooseApp.h:428
virtual std::string getInstallableInputs() const
Method to retrieve the installable inputs from a given applications <app>Revision....
Definition MooseApp.C:2212
std::vector< std::filesystem::path > writeRestartableMetaData(const RestartableDataMapName &name, const std::filesystem::path &folder_base)
Writes the restartable meta data for name with a folder base of folder_base.
Definition MooseApp.C:2561
RelationshipManager & getRMClone(const RelationshipManager &template_rm, const MeshBase &mesh) const
Return the relationship manager clone originally created from the provided template relationship mana...
Definition MooseApp.C:3087
std::shared_ptr< Executor > _executor
Pointer to the Executor of this run.
Definition MooseApp.h:1364
void recursivelyCreateExecutors(const std::string &current_executor_name, std::list< std::string > &possible_roots, std::list< std::string > &current_branch)
Internal function used to recursively create the executor objects.
Definition MooseApp.C:1901
const bool _test_restep
Whether or not this simulation should fail its middle timestep and repeat (for testing)
Definition MooseApp.h:1442
const ExecFlagEnum _execute_flags
Execution flags for this App.
Definition MooseApp.h:1717
void setExitCode(const int exit_code)
Sets the exit code that the application will exit with.
Definition MooseApp.h:165
bool hasRMClone(const RelationshipManager &template_rm, const MeshBase &mesh) const
Definition MooseApp.C:3079
bool _trap_fpe
Whether or not FPE trapping should be turned on.
Definition MooseApp.h:1434
auto getRestartableDataMapBegin()
Iterator based access to the extra RestartableDataMap objects; see Checkpoint.C for use case.
Definition MooseApp.h:1083
void setRecover(bool value)
Definition MooseApp.C:2894
bool _error_overridden
Indicates whether warnings or errors are displayed when overridden parameters are detected.
Definition MooseApp.h:1402
std::string getFrameworkVersion() const
Returns the framework version.
Definition MooseApp.C:1007
const ActionWarehouse & actionWarehouse() const
Return a const reference to the ActionWarehouse associated with this app.
Definition MooseApp.h:218
FRIEND_TEST(::CapabilitiesTest, mooseAppAddBoolCapability)
void setMFEMDevice(const std::string &executioner_device, const bool &gpu_aware_mpi)
Create/configure the MFEM device.
Definition MooseApp.C:3634
void allocateKokkosMemoryPool(std::size_t size, unsigned int ways) const
Allocate Kokkos memory pool.
bool hasMeshGenerator(const MeshGeneratorName &name) const
Definition MooseApp.h:916
std::map< std::type_index, std::unique_ptr< InterfaceRegistryObjectsBase > > _interface_registry
Registration for interface objects.
Definition MooseApp.h:1738
const bool _check_input
true if we want to just check the input file
Definition MooseApp.h:1448
bool getExodusFileRestart() const
Whether or not we need to use a separate Exodus reader to read the mesh BEFORE we create the mesh.
Definition MooseApp.h:440
const bool _test_checkpoint_half_transient
Whether or not this simulation should only run half its transient (useful for testing recovery)
Definition MooseApp.h:1440
static Moose::Capability & addCapabilityInternal(const std::string_view capability, const Moose::Capability::Value &value, const std::string_view doc)
Internal method for adding a capability.
Definition MooseApp.C:2340
RestartableDataMap & getRestartableDataMap(const RestartableDataMapName &name)
Return a reference to restartable data for the specific type flag.
Definition MooseApp.C:3436
const std::set< std::shared_ptr< RelationshipManager > > & relationshipManagers() const
Return the container of relationship managers.
Definition MooseApp.h:1067
void setErrorOverridden()
Set a flag so that the parser will throw an error if overridden parameters are detected.
Definition MooseApp.C:2030
RestartableDataValue & getRestartableMetaData(const std::string &name, const RestartableDataMapName &metaname, THREAD_ID tid)
Definition MooseApp.C:2520
bool showInputs() const
Prints a message showing the installable inputs for a given application (if getInstallableInputs has ...
Definition MooseApp.C:2180
bool isRecovering() const
Whether or not this is a "recover" calculation.
Definition MooseApp.C:1678
bool useExecutor() const
Definition MooseApp.h:340
PerfGraph & _perf_graph
The PerfGraph object for this application (recoverable)
Definition MooseApp.h:1352
std::optional< THREAD_ID > requestedNumThreads() const
Definition MooseApp.C:621
virtual void postRestore(const bool)
Insertion point for other apps that is called after restore()
Definition MooseApp.h:808
PerfGraph & perfGraph()
Get the PerfGraph for this app.
Definition MooseApp.h:176
bool testCheckpointHalfTransient() const
Whether or not this simulation should only run half its transient (useful for testing recovery)
Definition MooseApp.h:528
static const std::string MESH_META_DATA_SUFFIX
Definition MooseApp.h:134
bool _mesh_changed_for_backup
Whether mesh topology has changed and should be included in Backup objects.
Definition MooseApp.h:1750
auto getRestartableDataMapEnd()
Definition MooseApp.h:1085
bool _file_base_set_by_user
Whether or not file base is set through input or setOutputFileBase by MultiApp.
Definition MooseApp.h:1294
libMesh::ExodusII_IO * getExReaderForRestart() const
Get the Exodus reader to restart variables from an Exodus mesh file.
Definition MooseApp.h:453
const MeshGenerator & getMeshGenerator(const std::string &name) const
Definition MooseApp.h:924
virtual std::string getPrintableName() const
Get printable name of the application.
Definition MooseApp.h:145
const std::shared_ptr< Parser > _parser
Parser for parsing the input file (owns the root hit node)
Definition MooseApp.h:1328
std::string _restart_recover_base
The base name to restart/recover from. If blank then we will find the newest checkpoint file.
Definition MooseApp.h:1437
RestartableDataValue & registerRestartableData(const std::string &name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid, bool read_only, const RestartableDataMapName &metaname="")
bool defaultAutomaticScaling() const
Whether to enable automatic scaling by default.
Definition MooseApp.h:1059
const MooseMesh * masterDisplacedMesh() const
Returns a pointer to the master displaced mesh.
Definition MooseApp.h:885
RegistrationType
Enumeration for holding the valid types of dynamic registrations allowed.
Definition MooseApp.h:1679
@ APPLICATION
Definition MooseApp.h:1680
std::string appNameToLibName(const std::string &app_name) const
Converts an application name to a library name: Examples: AnimalApp -> libanimal-oprof....
Definition MooseApp.C:2430
bool _split_mesh
Whether or not we are performing a split mesh operation (–split-mesh)
Definition MooseApp.h:1425
std::list< std::string > getCheckpointFiles() const
Extract all possible checkpoint file names.
Definition MooseApp.C:2398
const SolutionInvalidity & solutionInvalidity() const
Definition MooseApp.h:183
int exitCode() const
Get the shell exit code for the application.
Definition MooseApp.h:160
virtual void setupOptions()
Setup options based on InputParameters.
Definition MooseApp.C:1025
static Moose::Capability & addIntCapability(const std::string_view capability, const int value, const std::string_view doc)
Register an integer capability.
Definition MooseApp.C:3588
std::streambuf * _output_buffer_cache
Cache output buffer so the language server can turn it off then back on.
Definition MooseApp.h:1720
Syntax _syntax
Syntax of the input file.
Definition MooseApp.h:1312
bool hasInitialBackup() const
Definition MooseApp.h:1051
void setOutputFileNumbers(const std::map< std::string, unsigned int > &numbers)
Store a map of outputter names and file numbers The MultiApp system requires this to get the file num...
Definition MooseApp.h:544
RestartableDataReader _rd_reader
Definition MooseApp.h:1708
bool unusedFlagIsWarning() const
Returns whether the flag for unused parameters is set to throw a warning only.
Definition MooseApp.h:1121
MeshGeneratorSystem & getMeshGeneratorSystem()
Gets the system that manages the MeshGenerators.
Definition MooseApp.h:890
const hit::Node * getCurrentActionHitNode() const
Definition MooseApp.C:3071
const bool _force_restart
Whether or not we are forcefully attempting to load checkpoints (–force-restart)
Definition MooseApp.h:1431
void disableCheckUnusedFlag()
Removes warnings and error checks for unrecognized variables in the input file.
Definition MooseApp.C:1855
Real getStartTime() const
Definition MooseApp.h:303
std::string libNameToAppName(const std::string &library_name) const
Converts a library name to an application name:
Definition MooseApp.C:2446
std::set< std::string > getLoadedLibraryPaths() const
Return the paths of loaded libraries.
Definition MooseApp.C:2839
void setCheckUnusedFlag(bool warn_is_error=false)
Set a flag so that the parser will either warn or error when unused variables are seen after parsing ...
Definition MooseApp.C:1849
FRIEND_TEST(::CapabilitiesTest, mooseAppAddStringCapability)
bool checkInput() const
Returns whether the Application is running in check input mode.
Definition MooseApp.h:980
const bool _automatic_automatic_scaling
Whether to turn on automatic scaling by default.
Definition MooseApp.h:1723
std::map< const RelationshipManager *, std::map< const MeshBase *, std::unique_ptr< RelationshipManager > > > _template_to_clones
Map from a template relationship manager to a map in which the key-value pairs represent the MeshBase...
Definition MooseApp.h:1735
std::filesystem::path restartFolderBase(const std::filesystem::path &folder_base) const
The file suffix for restartable data.
Definition MooseApp.C:3063
bool useMasterMesh() const
Returns whether to use the parent app mesh as the mesh for this app.
Definition MooseApp.h:875
FRIEND_TEST(::CapabilitiesTest, mooseAppAddCapability)
std::unique_ptr< Backup > *const _initial_backup
The backup for use in initial setup; this will get set from the _initial_backup input parameter that ...
Definition MooseApp.h:1744
void addExecutorParams(const std::string &type, const std::string &name, const InputParameters &params)
Adds the parameters for an Executor to the list of parameters.
Definition MooseApp.C:1880
bool copyInputs()
Handles the copy_inputs input parameter logic: Checks to see whether the passed argument is valid (a ...
Definition MooseApp.C:2218
static Moose::Capability & addStringCapability(const std::string_view capability, const std::string_view value, const std::string_view doc)
Register a string capability.
Definition MooseApp.C:3596
SolutionInvalidity & solutionInvalidity()
Get the SolutionInvalidity for this app.
Definition MooseApp.h:182
static const RestartableDataMapName MESH_META_DATA
Definition MooseApp.h:133
virtual void runInputFile()
Actually build everything in the input file.
Definition MooseApp.C:1566
std::vector< RestartableDataMap > & getRestartableData()
Definition MooseApp.h:698
TheWarehouse & theWarehouse()
Definition MooseApp.h:140
bool _use_eigen_value
Boolean to indicate whether to use an eigenvalue executioner.
Definition MooseApp.h:1389
std::string _early_exit_param
Indicates if simulation is ready to exit, and keeps track of which param caused it to exit.
Definition MooseApp.h:1404
void markMeshChangedForBackup()
Mark this app as requiring mesh topology data in its next Backup object.
Definition MooseApp.h:759
static Moose::Capability & addCapability(const std::string_view capability, const Moose::Capability::Value &value, const std::string_view doc)
Deprecated method for adding a capability.
Definition MooseApp.C:3604
virtual std::string getVersion() const
Returns the current version of the framework or application (default: framework version).
Definition MooseApp.C:1013
const std::map< std::string, unsigned int > & getOutputFileNumbers() const
Store a map of outputter names and file numbers The MultiApp system requires this to get the file num...
Definition MooseApp.h:556
bool & useEigenvalue()
Returns a writable Boolean indicating whether this app will use an eigenvalue executioner.
Definition MooseApp.h:399
int _exit_code
The exit code.
Definition MooseApp.h:1407
const RankMap _rank_map
The RankMap is a useful object for determining how the processes are laid out on the physical hardwar...
Definition MooseApp.h:1358
InputParameterWarehouse & getInputParameterWarehouse()
Get the InputParameterWarehouse for MooseObjects.
Definition MooseApp.C:2876
const bool _use_executor
Indicates whether we are operating in the new/experimental executor mode instead of using the legacy ...
Definition MooseApp.h:1380
Base class for everything in MOOSE with a name and a type.
Definition MooseBase.h:50
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93
void mooseDeprecated(Args &&... args) const
Emits a deprecation warning prefixed with the object name and type, and a stack trace.
Definition MooseBase.h:317
const std::string & name() const
Get the name of the class.
Definition MooseBase.h:103
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
Parses MOOSE input using HIT/WASP.
Definition Builder.h:57
An entry for a single capability.
Definition Capability.h:30
std::variant< bool, int, std::string > Value
A capability can have a bool, int, or string value.
Definition Capability.h:33
The Kokkos class that manages memory pool for dynamically-sized temporary arrays in Kokkos parallel f...
A MultiApp represents one or more MOOSE applications that are running simultaneously.
Definition MultiApp.h:140
Class for storing and utilizing output objects.
Class for parsing input files.
Definition Parser.h:109
Interface for objects interacting with the PerfGraph.
The PerfGraph will hold the master list of all registered performance segments and the head PerfNode.
Definition PerfGraph.h:44
Builds lists and maps that help in knowing which physical hardware nodes each rank is on.
Definition RankMap.h:24
RelationshipManagers are used for describing what kinds of non-local resources are needed for an obje...
This is a helper class for managing the storage of declared Reporter object values.
Storage for restartable data that is ordered based on insertion order.
Reader for restartable data written by the RestartableDataWriter.
bool restoreDataIfAvailable(RestartableDataValue &value, const THREAD_ID tid, Moose::PassKey< MooseApp >)
Restores value in place from the open reader if it is present in the checkpoint and has not yet been ...
Abstract definition of a RestartableData value.
A class for creating restricted objects.
Definition Restartable.h:29
The SolutionInvalidity will contain all the information about the occurrence(s) of solution invalidit...
Generic class for solving transient nonlinear problems.
Definition SubProblem.h:79
Holding syntax for parsing input files.
Definition Syntax.h:22
TheWarehouse is a container for MooseObjects that allows querying/filtering over various customizeabl...
std::string getLatestCheckpointFilePrefix(const std::list< std::string > &checkpoint_files)
Definition MooseUtils.C:882
std::string getExecutableName()
Gets the name of the running executable on Mac OS X and linux.
RelationshipManagerType
Main types of Relationship Managers.
RESTARTABLE_FILTER
The filter type applied to a particular piece of "restartable" data.
Definition MooseTypes.h:846
Definition Moose.h:48
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
std::unordered_set< std::string > entry_symbols
Definition MooseApp.h:1468
Stores configuration options relating to the fixed-point solving capability.
Definition MooseApp.h:123
std::vector< std::string > sub_transformed_vars
The names of variables to transform for fixed point solve algorithms (e.g. secant,...
Definition MooseApp.h:128
std::vector< PostprocessorName > sub_transformed_pps
The names of postprocessors to transform for fixed point solve algorithms (e.g. secant,...
Definition MooseApp.h:130
Real sub_relaxation_factor
relaxation factor to be used for a MultiApp's subapps.
Definition MooseApp.h:126