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

Generated by: LCOV version 1.14