LCOV - code coverage report
Current view: top level - src/base - StochasticToolsApp.C (source / functions) Hit Total Coverage
Test: idaholab/moose stochastic_tools: #33416 (b10b36) with base 9fbd27 Lines: 58 70 82.9 %
Date: 2026-07-23 16:21:17 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       20643 : StochasticToolsApp::validParams()
      17             : {
      18       20643 :   InputParameters params = MooseApp::validParams();
      19             : 
      20       20643 :   params.set<bool>("use_legacy_material_output") = false;
      21       20643 :   params.set<bool>("use_legacy_initial_residual_evaluation_behavior") = false;
      22             : 
      23       20643 :   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       20641 : StochasticToolsApp::registerAll(Factory & f, ActionFactory & af, Syntax & syntax)
      37             : {
      38       20641 :   Registry::registerObjectsTo(f, {"StochasticToolsApp"});
      39       20641 :   Registry::registerActionsTo(af, {"StochasticToolsApp"});
      40             : 
      41             :   // Adds [Trainers] block
      42       41282 :   registerSyntaxTask("AddSurrogateAction", "Trainers/*", "add_trainer");
      43       41282 :   registerMooseObjectTask("add_trainer", SurrogateTrainer, false);
      44       41282 :   addTaskDependency("add_trainer", "add_sampler");
      45             : 
      46             :   // Adds [Surrogates] block
      47       41282 :   registerSyntaxTask("AddSurrogateAction", "Surrogates/*", "add_surrogate");
      48       41282 :   registerMooseObjectTask("add_surrogate", SurrogateModel, false);
      49       41282 :   addTaskDependency("add_surrogate", "add_trainer");
      50             : 
      51             :   // Adds action for loading Surrogate data
      52       20641 :   registerTask("load_surrogate_data", true);
      53       41282 :   addTaskDependency("load_surrogate_data", "add_surrogate");
      54             : 
      55             :   // Adds action for loading mapping data
      56       20641 :   registerTask("load_mapping_data", true);
      57       41282 :   addTaskDependency("load_mapping_data", "add_variable_mapping");
      58             : 
      59             :   // General StochasticTools action
      60       20641 :   registerTask("auto_create_mesh", false);
      61       20641 :   registerTask("auto_create_problem", false);
      62       20641 :   registerTask("auto_create_executioner", false);
      63       41282 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_mesh");
      64       41282 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_problem");
      65       41282 :   registerSyntaxTask("StochasticToolsAction", "StochasticTools", "auto_create_executioner");
      66             : 
      67             :   // StochasticResults
      68       20641 :   registerTask("declare_stochastic_results_vectors", true);
      69       41282 :   addTaskDependency("declare_stochastic_results_vectors", "add_vector_postprocessor");
      70       41282 :   addTaskDependency("add_reporter", "declare_stochastic_results_vectors");
      71             : 
      72             : #ifdef MOOSE_LIBTORCH_ENABLED
      73             :   // Covariance functions (Gaussian Process)
      74        6026 :   registerSyntaxTask("AddCovarianceAction", "Covariance/*", "add_covariance");
      75        6026 :   registerMooseObjectTask("add_covariance", CovarianceFunctionBase, false);
      76        6026 :   addTaskDependency("add_covariance", "add_user_object");
      77        6026 :   addTaskDependency("add_distribution", "add_covariance");
      78             : #endif
      79             : 
      80             :   // Mapping objects
      81       41282 :   registerSyntaxTask("AddVariableMappingAction", "VariableMappings/*", "add_variable_mapping");
      82       41282 :   registerMooseObjectTask("add_variable_mapping", VariableMappingBase, false);
      83       41282 :   addTaskDependency("add_variable_mapping", "add_reporter");
      84             : 
      85             : #ifdef MOOSE_LIBTORCH_ENABLED
      86             :   // Adds action for loading Covariance data in model
      87        3013 :   registerTask("load_covariance_data", true);
      88        6026 :   addTaskDependency("load_covariance_data", "load_surrogate_data");
      89        6026 :   addTaskDependency("setup_function_complete", "load_covariance_data");
      90             : #else
      91       35256 :   addTaskDependency("setup_function_complete", "load_surrogate_data");
      92             : #endif
      93             : 
      94       41282 :   addTaskDependency("setup_mesh", "auto_create_mesh");
      95       41282 :   addTaskDependency("create_problem", "auto_create_problem");
      96       41282 :   addTaskDependency("setup_executioner", "auto_create_executioner");
      97             :   // Likelihood functions (Bayesian inference)
      98       41282 :   registerSyntaxTask("AddLikelihoodAction", "Likelihood/*", "add_likelihood");
      99       41282 :   registerMooseObjectTask("add_likelihood", LikelihoodFunctionBase, false);
     100       41282 :   addTaskDependency("add_likelihood", "add_user_object");
     101       41282 :   addTaskDependency("add_distribution", "add_likelihood");
     102             :   // Parallel acquisition (active learning)
     103       41282 :   registerSyntaxTask(
     104             :       "AddParallelAcquisitionAction", "ParallelAcquisition/*", "add_parallelacquisition");
     105       41282 :   registerMooseObjectTask("add_parallelacquisition", ParallelAcquisitionFunctionBase, false);
     106       41282 :   addTaskDependency("add_parallelacquisition", "add_user_object");
     107       41282 :   addTaskDependency("add_distribution", "add_parallelacquisition");
     108             : 
     109       41282 :   registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_user_object");
     110       41282 :   registerSyntaxTask("AdaptiveSamplerAction", "Samplers", "add_postprocessor");
     111             : 
     112             :   // Adds [ParameterStudy] block
     113       41282 :   registerSyntax("ParameterStudyAction", "ParameterStudy");
     114       20641 : }
     115             : 
     116             : void
     117        3363 : StochasticToolsApp::registerApps()
     118             : {
     119        3363 :   registerApp(StochasticToolsApp);
     120        3363 : }
     121             : 
     122             : void
     123          40 : StochasticToolsApp::requiresTorch(const MooseObject &
     124             : #ifndef MOOSE_LIBTORCH_ENABLED
     125             :                                       obj
     126             : #endif
     127             : )
     128             : {
     129             : #ifndef MOOSE_LIBTORCH_ENABLED
     130           0 :   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          40 : }
     135             : 
     136             : extern "C" void
     137           0 : StochasticToolsApp__registerAll(Factory & f, ActionFactory & af, Syntax & s)
     138             : {
     139           0 :   StochasticToolsApp::registerAll(f, af, s);
     140           0 : }
     141             : extern "C" void
     142           0 : StochasticToolsApp__registerApps()
     143             : {
     144           0 :   StochasticToolsApp::registerApps();
     145           0 : }

Generated by: LCOV version 1.14