https://mooseframework.inl.gov
ReactionNetworkPhysicsBase.h
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 
10 #pragma once
11 
12 #include "PhysicsBase.h"
13 #include "ReactionNetworkUtils.h"
14 
15 class ActionComponent;
16 
17 #define registerReactionNetworkPhysicsBaseTasks(app_name, derived_name) \
18  registerPhysicsBaseTasks(app_name, derived_name); \
19  registerMooseAction(app_name, derived_name, "add_variable"); \
20  registerMooseAction(app_name, derived_name, "add_aux_variable"); \
21  registerMooseAction(app_name, derived_name, "add_ic")
22 
29 {
30 public:
32 
34 
35  void addComponent(const ActionComponent & component) override;
36 
37 protected:
39  const std::vector<VariableName> & _solver_species;
41  const unsigned int _num_solver_species;
43  const std::vector<AuxVariableName> & _aux_species;
45  const unsigned int _num_aux_species;
47  std::vector<std::string> _reactions_input;
49  const std::vector<ReactionNetworkUtils::Reaction> _reactions;
51  const unsigned int _num_reactions;
52 
53 private:
55  virtual void addSolverVariables() override;
57  virtual void addAuxiliaryVariables() override;
59  virtual void addPreconditioning() override;
61  virtual void addInitialConditions() override;
62 };
const std::vector< ReactionNetworkUtils::Reaction > _reactions
Reaction network after being parsed in initializePhysics()
std::vector< std::string > _reactions_input
Reaction network as a vector of lines for pretty output.
const unsigned int _num_reactions
Number of reactions involved in the network.
static const std::string component
Definition: NS.h:157
const InputParameters & parameters() const
const unsigned int _num_aux_species
Number of auxiliary species.
const std::vector< VariableName > & _solver_species
Name of the species variables to solve for in the reaction network.
void addComponent(const ActionComponent &component) override
static InputParameters validParams()
Base class to host all common parameters and attributes of Physics actions to solve equations for mul...
const std::vector< AuxVariableName > & _aux_species
Name of the species variables that can be computed without additional solves, simply auxkernels...
virtual void addPreconditioning() override
Add default preconditioning options (not implemented at this time)
virtual void addInitialConditions() override
Add initial conditions for the solver variable (auxiliary not implemented)
virtual void addAuxiliaryVariables() override
Add nodal auxiliary variables.
virtual void addSolverVariables() override
Add solver variables (currently coded for CGFE)
const unsigned int _num_solver_species
Number of species to solve for.
ReactionNetworkPhysicsBase(const InputParameters &parameters)