20 params.
addRequiredParam<std::vector<VariableName>>(
"solver_variables",
"Species to solve for");
22 "auxiliary_variables",
23 "Additional species to output the concentration of, which do not require an additional "
24 "equation to obtain");
26 params.
addParam<std::vector<Real>>(
"equation_scaling",
27 "Scaling factor to apply to each equation");
30 params.
addParam<std::vector<MooseFunctorName>>(
"initial_conditions",
31 "Initial conditions for the species to solve for");
34 params.
addParam<std::string>(
"reactions",
"The list of chemical reactions");
41 _solver_species(getParam<
std::vector<VariableName>>(
"solver_variables")),
42 _num_solver_species(_solver_species.size()),
43 _aux_species(getParam<
std::vector<AuxVariableName>>(
"auxiliary_variables")),
44 _num_aux_species(_aux_species.size()),
47 _num_reactions(_reactions.size())
57 checkVectorParamsSameLength<VariableName, MooseFunctorName>(
"solver_variables",
58 "initial_conditions");
60 checkVectorParamsSameLength<VariableName, Real>(
"solver_variables",
"equation_scaling");
68 std::stringstream reactions_param(getParam<std::string>(
"reactions"));
70 while (std::getline(reactions_param, line,
'\n'))
73 "Should be the same size. Extra line break in the reaction network?");
86 {
"variable_order",
"system_names",
"equation_scaling"},
"MooseVariable", var_name);
90 const std::string variable_type =
"MooseVariable";
92 params.
set<
MooseEnum>(
"order") = getParam<MooseEnum>(
"variable_order");
95 params.
set<std::vector<Real>>(
"scaling") = {
96 getParam<std::vector<Real>>(
"equation_scaling")[i]};
117 const std::string variable_type =
"MooseVariable";
119 params.
set<
MooseEnum>(
"order") = getParam<MooseEnum>(
"variable_order");
135 for (
const auto & block : component.blocks())
144 std::vector<MooseFunctorName> empty_functor_vector;
145 const auto & initial_functors =
147 ? getParam<std::vector<MooseFunctorName>>(
"initial_conditions")
148 : empty_functor_vector;
161 params.
set<VariableName>(
"variable") = var_name;
162 params.
set<MooseFunctorName>(
"functor") = initial_functors[i];
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters ¶meters)
virtual void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
InputParameters getValidParams(const std::string &name) const
bool isParamSetByUser(const std::string &name) const
bool isParamValid(const std::string &name) const
static InputParameters validParams()
static InputParameters validParams()
virtual FEProblemBase & getProblem()
bool shouldCreateIC(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool ic_is_default_ic, const bool error_if_already_defined) const
void assignBlocks(InputParameters ¶ms, const std::vector< SubdomainName > &blocks) const
void reportPotentiallyMissedParameters(const std::vector< std::string > ¶m_names, const std::string &object_type, const std::string &object_name="") const
void saveSolverVariableName(const VariableName &var_name)
std::string prefix() const
bool variableExists(const VariableName &var_name, bool error_if_aux) const
const SolverSystemName & getSolverSystem(unsigned int variable_index) const
void saveAuxVariableName(const VariableName &var_name)
std::vector< SubdomainName > _blocks
void addRequiredPhysicsTask(const std::string &task)
virtual void addPreconditioning() override
Add default preconditioning options (not implemented at this time)
virtual void addSolverVariables() override
Add solver variables (currently coded for CGFE)
ReactionNetworkPhysicsBase(const InputParameters ¶meters)
void addComponent(const ActionComponent &component) override
std::vector< std::string > _reactions_input
Reaction network as a vector of lines for pretty output.
virtual void addInitialConditions() override
Add initial conditions for the solver variable (auxiliary not implemented)
virtual void addAuxiliaryVariables() override
Add nodal auxiliary variables.
static InputParameters validParams()
const std::vector< AuxVariableName > & _aux_species
Name of the species variables that can be computed without additional solves, simply auxkernels.
const unsigned int _num_reactions
Number of reactions involved in the network.
const std::vector< VariableName > & _solver_species
Name of the species variables to solve for in the reaction network.