https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SubChannelCreateProblemAction.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
11#include "ActionFactory.h"
12#include "SubChannelApp.h"
13#include "FEProblemBase.h"
14#include "SCM.h"
15#include "SubChannelMesh.h"
16
17registerMooseAction("SubChannelApp", SubChannelCreateProblemAction, "create_problem");
18
21{
23 params.addClassDescription("Creates the input block that encopasses all the problem parameters");
24 params.addRequiredParam<std::string>("type", "Problem type");
25 params.addParam<std::string>("name", "SubChannel Problem", "The name of the problem");
26 return params;
27}
28
33
34void
36{
37 // build the problem only if we have mesh
38 if (_mesh.get() != NULL)
39 {
40 // when this action is built by parser with Problem input block, this action
41 // must act i.e. create a problem. Thus if a problem has been created, it will error out.
42 if (_problem)
43 mooseError("Trying to build a problem but problem has already existed");
44
45 _moose_object_pars.set<MooseMesh *>("mesh") = _mesh.get();
46 _moose_object_pars.set<bool>("use_nonlinear") = _app.useNonlinear();
47
48 _problem =
49 _factory.create<FEProblemBase>(_type, getParam<std::string>("name"), _moose_object_pars);
50 }
51}
registerMooseAction("SubChannelApp", SubChannelCreateProblemAction, "create_problem")
std::shared_ptr< MooseMesh > & _mesh
std::shared_ptr< FEProblemBase > & _problem
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters &parameters, THREAD_ID tid=0, bool print_deprecated=true)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
T & set(const std::string &name, bool quiet_mode=false)
bool & useNonlinear()
void mooseError(Args &&... args) const
InputParameters _moose_object_pars
static InputParameters validParams()
std::string _type
Factory & _factory
Action that creates SubChannel problem.
SubChannelCreateProblemAction(const InputParameters &parameters)