LCOV - code coverage report
Current view: top level - src/base - StochasticToolsApp.C (source / functions) Hit Total Coverage
Test: idaholab/moose stochastic_tools: f45d79 Lines: 53 65 81.5 %
Date: 2025-07-25 05:00:46 Functions: 4 9 44.4 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : 
      15             : InputParameters
      16       39342 : StochasticToolsApp::validParams()
      17             : {
      18       39342 :   InputParameters params = MooseApp::validParams();
      19             : 
      20       39342 :   params.set<bool>("use_legacy_material_output") = false;
      21       39342 :   params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
      22             : 
      23       39342 :   return params;
      24           0 : }
      25             : 
      26             : registerKnownLabel("StochasticToolsApp");
      27             : 
      28           0 : StochasticToolsApp::StochasticToolsApp(const InputParameters & parameters) : MooseApp(parameters)
      29             : {
      30           0 :   StochasticToolsApp::registerAll(_factory, _action_factory, _syntax);
      31           0 : }
      32             : 
      33           0 : StochasticToolsApp::~StochasticToolsApp() {}
      34             : 
      35             : void
      36       39338 : StochasticToolsApp::registerAll(Factory & f, ActionFactory & af, Syntax & syntax)
      37             : {
      38      118014 :   Registry::registerObjectsTo(f, {"StochasticToolsApp"});
      39      118014 :   Registry::registerActionsTo(af, {"StochasticToolsApp"});
      40             : 
      41             :   // Adds [Trainers] block
      42       78676 :   registerSyntaxTask("AddSurrogateAction", "Trainers/*", "add_trainer");
      43       78676 :   registerMooseObjectTask("add_trainer", SurrogateTrainer, false);
      44       78676 :   addTaskDependency("add_trainer", "add_sampler");
      45             : 
      46             :   // Adds [Surrogates] block
      47       78676 :   registerSyntaxTask("AddSurrogateAction", "Surrogates/*", "add_surrogate");
      48       78676 :   registerMooseObjectTask("add_surrogate", SurrogateModel, false);
      49       78676 :   addTaskDependency("add_surrogate", "add_trainer");
      50             : 
      51             :   // Adds action for loading Surrogate data
      52       39338 :   registerTask("load_surrogate_data", true);
      53       78676 :   addTaskDependency("load_surrogate_data", "add_surrogate");
      54             : 
      55             :   // Adds action for loading mapping data
      56       39338 :   registerTask("load_mapping_data", true);
      57       78676 :   addTaskDependency("load_mapping_data", "add_variable_mapping");
      58             : 
      59             :   // General StochasticTools action
      60       39338 :   registerTask("auto_create_mesh", false);
      61       39338 :   registerTask("auto_create_problem", false);
      62       39338 :   registerTask("auto_create_executioner", false);
      63       78676 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_mesh");
      64       78676 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_problem");
      65       78676 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_executioner");
      66             : 
      67             :   // StochasticResults
      68       39338 :   registerTask("declare_stochastic_results_vectors", true);
      69       78676 :   addTaskDependency("declare_stochastic_results_vectors", "add_vector_postprocessor");
      70       78676 :   addTaskDependency("add_reporter", "declare_stochastic_results_vectors");
      71             : 
      72             :   // Covariance functions (Gaussian Process)
      73       78676 :   registerSyntaxTask("AddCovarianceAction", "Covariance/*", "add_covariance");
      74       78676 :   registerMooseObjectTask("add_covariance", CovarianceFunctionBase, false);
      75       78676 :   addTaskDependency("add_covariance", "add_user_object");
      76       78676 :   addTaskDependency("add_distribution", "add_covariance");
      77             :   // Mapping objects
      78       78676 :   registerSyntaxTask("AddVariableMappingAction", "VariableMappings/*", "add_variable_mapping");
      79       78676 :   registerMooseObjectTask("add_variable_mapping", VariableMappingBase, false);
      80       78676 :   addTaskDependency("add_variable_mapping", "add_reporter");
      81             :   // Adds action for loading Covariance data in model
      82       39338 :   registerTask("load_covariance_data", true);
      83       78676 :   addTaskDependency("load_covariance_data", "load_surrogate_data");
      84       78676 :   addTaskDependency("setup_function_complete", "load_covariance_data");
      85       78676 :   addTaskDependency("setup_mesh", "auto_create_mesh");
      86       78676 :   addTaskDependency("create_problem", "auto_create_problem");
      87       78676 :   addTaskDependency("setup_executioner", "auto_create_executioner");
      88             :   // Likelihood functions (Bayesian inference)
      89       78676 :   registerSyntaxTask("AddLikelihoodAction", "Likelihood/*", "add_likelihood");
      90       78676 :   registerMooseObjectTask("add_likelihood", LikelihoodFunctionBase, false);
      91       78676 :   addTaskDependency("add_likelihood", "add_user_object");
      92       78676 :   addTaskDependency("add_distribution", "add_likelihood");
      93             : 
      94       78676 :   registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_user_object");
      95       78676 :   registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_postprocessor");
      96             : 
      97             :   // Adds [ParameterStudy] block
      98       78676 :   registerSyntax("ParameterStudyAction", "ParameterStudy");
      99      157352 : }
     100             : 
     101             : void
     102        6904 : StochasticToolsApp::registerApps()
     103             : {
     104        6904 :   registerApp(StochasticToolsApp);
     105        6904 : }
     106             : 
     107             : void
     108          40 : StochasticToolsApp::requiresTorch(const MooseObject &
     109             : #ifndef MOOSE_LIBTORCH_ENABLED
     110             :                                       obj
     111             : #endif
     112             : )
     113             : {
     114             : #ifndef MOOSE_LIBTORCH_ENABLED
     115           0 :   obj.mooseError("PyTorch C++ API (libtorch) must be installed to use this object, see "
     116             :                  "https://mooseframework.inl.gov/modules/stochastic_tools/install_pytorch.html for "
     117             :                  "instruction.");
     118             : #endif
     119          40 : }
     120             : 
     121             : extern "C" void
     122           0 : StochasticToolsApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
     123             : {
     124           0 :   StochasticToolsApp::registerAll(f, af, s);
     125           0 : }
     126             : extern "C" void
     127           0 : StochasticToolsApp__registerApps()
     128             : {
     129           0 :   StochasticToolsApp::registerApps();
     130           0 : }

Generated by: LCOV version 1.14