https://mooseframework.inl.gov
AddPrimarySpeciesAction.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 "FEProblem.h"
12 
13 registerMooseAction("ChemicalReactionsApp", AddPrimarySpeciesAction, "add_variable");
14 
17 {
19  params.addRequiredParam<std::vector<NonlinearVariableName>>(
20  "primary_species", "The list of primary variables to add");
21  params.addClassDescription("Adds Variables for all primary species");
22  return params;
23 }
24 
26  : AddVariableAction(params),
27  _vars(getParam<std::vector<NonlinearVariableName>>("primary_species")),
28  _scaling(isParamValid("scaling") ? getParam<std::vector<Real>>("scaling")
29  : std::vector<Real>(1, 1.0))
30 {
31 }
32 
33 void
35 {
36  auto fe_type = AddVariableAction::feType(_pars);
37  auto type = AddVariableAction::variableType(fe_type);
38  auto var_params = _factory.getValidParams(type);
39 
40  var_params.applySpecificParameters(_pars, {"family", "order", "scaling"});
41 
42  for (auto & var : _vars)
43  _problem->addVariable(type, var, var_params);
44 }
static InputParameters validParams()
AddPrimarySpeciesAction(const InputParameters &params)
void applySpecificParameters(const InputParameters &common, const std::vector< std::string > &include, bool allow_private=false)
const std::vector< NonlinearVariableName > _vars
Primary species to add.
InputParameters getValidParams(const std::string &name) const
virtual void act() override
void addRequiredParam(const std::string &name, const std::string &doc_string)
Factory & _factory
const std::string & type() const
static std::string variableType(const libMesh::FEType &fe_type, const bool is_fv=false, const bool is_array=false)
registerMooseAction("ChemicalReactionsApp", AddPrimarySpeciesAction, "add_variable")
static libMesh::FEType feType(const InputParameters &params)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & _pars
void addClassDescription(const std::string &doc_string)
std::shared_ptr< FEProblemBase > & _problem
static InputParameters validParams()