https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
13registerMooseAction("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
33void
35{
36 auto fe_type = AddVariableAction::feType(_pars);
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}
registerMooseAction("ChemicalReactionsApp", AddPrimarySpeciesAction, "add_variable")
std::shared_ptr< FEProblemBase > & _problem
virtual void act() override
AddPrimarySpeciesAction(const InputParameters &params)
static InputParameters validParams()
const std::vector< NonlinearVariableName > _vars
Primary species to add.
static libMesh::FEType feType(const InputParameters &params)
static std::string variableType(const libMesh::FEType &fe_type, const bool is_fv=false, const bool is_array=false)
static InputParameters validParams()
InputParameters getValidParams(const std::string &name) const
void applySpecificParameters(const InputParameters &common, const std::vector< std::string > &include, bool allow_private=false)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
const std::string & type() const
const InputParameters & _pars
Factory & _factory