https://mooseframework.inl.gov
Loading...
Searching...
No Matches
StochasticToolsApp.C
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#include "StochasticToolsApp.h"
11#include "Moose.h"
12#include "AppFactory.h"
13#include "MooseSyntax.h"
14
17{
19
20 params.set<bool>("use_legacy_material_output") = false;
21 params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
22
23 return params;
24}
25
26registerKnownLabel("StochasticToolsApp");
27
32
34
35void
37{
38 Registry::registerObjectsTo(f, {"StochasticToolsApp"});
39 Registry::registerActionsTo(af, {"StochasticToolsApp"});
40
41 // Adds [Trainers] block
42 registerSyntaxTask("AddSurrogateAction", "Trainers/*", "add_trainer");
43 registerMooseObjectTask("add_trainer", SurrogateTrainer, false);
44 addTaskDependency("add_trainer", "add_sampler");
45
46 // Adds [Surrogates] block
47 registerSyntaxTask("AddSurrogateAction", "Surrogates/*", "add_surrogate");
48 registerMooseObjectTask("add_surrogate", SurrogateModel, false);
49 addTaskDependency("add_surrogate", "add_trainer");
50
51 // Adds action for loading Surrogate data
52 registerTask("load_surrogate_data", true);
53 addTaskDependency("load_surrogate_data", "add_surrogate");
54
55 // Adds action for loading mapping data
56 registerTask("load_mapping_data", true);
57 addTaskDependency("load_mapping_data", "add_variable_mapping");
58
59 // General StochasticTools action
60 registerTask("auto_create_mesh", false);
61 registerTask("auto_create_problem", false);
62 registerTask("auto_create_executioner", false);
63 registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_mesh");
64 registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_problem");
65 registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_executioner");
66
67 // StochasticResults
68 registerTask("declare_stochastic_results_vectors", true);
69 addTaskDependency("declare_stochastic_results_vectors", "add_vector_postprocessor");
70 addTaskDependency("add_reporter", "declare_stochastic_results_vectors");
71
72#ifdef MOOSE_LIBTORCH_ENABLED
73 // Covariance functions (Gaussian Process)
74 registerSyntaxTask("AddCovarianceAction", "Covariance/*", "add_covariance");
75 registerMooseObjectTask("add_covariance", CovarianceFunctionBase, false);
76 addTaskDependency("add_covariance", "add_user_object");
77 addTaskDependency("add_distribution", "add_covariance");
78#endif
79
80 // Mapping objects
81 registerSyntaxTask("AddVariableMappingAction", "VariableMappings/*", "add_variable_mapping");
82 registerMooseObjectTask("add_variable_mapping", VariableMappingBase, false);
83 addTaskDependency("add_variable_mapping", "add_reporter");
84
85#ifdef MOOSE_LIBTORCH_ENABLED
86 // Adds action for loading Covariance data in model
87 registerTask("load_covariance_data", true);
88 addTaskDependency("load_covariance_data", "load_surrogate_data");
89 addTaskDependency("setup_function_complete", "load_covariance_data");
90#else
91 addTaskDependency("setup_function_complete", "load_surrogate_data");
92#endif
93
94 addTaskDependency("setup_mesh", "auto_create_mesh");
95 addTaskDependency("create_problem", "auto_create_problem");
96 addTaskDependency("setup_executioner", "auto_create_executioner");
97 // Likelihood functions (Bayesian inference)
98 registerSyntaxTask("AddLikelihoodAction", "Likelihood/*", "add_likelihood");
99 registerMooseObjectTask("add_likelihood", LikelihoodFunctionBase, false);
100 addTaskDependency("add_likelihood", "add_user_object");
101 addTaskDependency("add_distribution", "add_likelihood");
102 // Parallel acquisition (active learning)
103 registerSyntaxTask(
104 "AddParallelAcquisitionAction", "ParallelAcquisition/*", "add_parallelacquisition");
105 registerMooseObjectTask("add_parallelacquisition", ParallelAcquisitionFunctionBase, false);
106 addTaskDependency("add_parallelacquisition", "add_user_object");
107 addTaskDependency("add_distribution", "add_parallelacquisition");
108
109 registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_user_object");
110 registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_postprocessor");
111
112 // Adds [ParameterStudy] block
113 registerSyntax("ParameterStudyAction", "ParameterStudy");
114}
115
116void
121
122void
124#ifndef MOOSE_LIBTORCH_ENABLED
125 obj
126#endif
127)
128{
129#ifndef MOOSE_LIBTORCH_ENABLED
130 obj.mooseError("PyTorch C++ API (libtorch) must be installed to use this object, see "
131 "https://mooseframework.inl.gov/modules/stochastic_tools/install_pytorch.html for "
132 "instruction.");
133#endif
134}
135
136extern "C" void
141extern "C" void
Real f(Real x)
Test function for Brents method.
registerKnownLabel("StochasticToolsApp")
void StochasticToolsApp__registerAll(Factory &f, ActionFactory &af, Syntax &s)
void StochasticToolsApp__registerApps()
Base class for covariance functions that are used in Gaussian Processes.
T & set(const std::string &name, bool quiet_mode=false)
All Likelihoods should inherit from this class.
ActionFactory _action_factory
static InputParameters validParams()
Factory _factory
Syntax _syntax
All ParallelAcquisition functions should inherit from this class.
static void registerActionsTo(ActionFactory &f, const std::set< std::string > &labels)
static void registerObjectsTo(Factory &f, const std::set< std::string > &labels)
static InputParameters validParams()
static void requiresTorch(const MooseObject &obj)
StochasticToolsApp(const InputParameters &parameters)
static void registerAll(Factory &f, ActionFactory &af, Syntax &s)
This is the main trainer base class.
This is an abstract base class for objects that provide mapping between a full-order and a latent spa...