www.mooseframework.org
ChemicalReactionsApp.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #include "ChemicalReactionsApp.h"
9 #include "Moose.h"
10 #include "AppFactory.h"
11 #include "MooseSyntax.h"
12 
13 #include "PrimaryTimeDerivative.h"
14 #include "PrimaryConvection.h"
15 #include "PrimaryDiffusion.h"
19 #include "CoupledBEKinetic.h"
20 #include "DesorptionFromMatrix.h"
21 #include "DesorptionToPorespace.h"
22 #include "DarcyFluxPressure.h"
23 
25 #include "KineticDisPreConcAux.h"
26 #include "KineticDisPreRateAux.h"
27 
32 
33 #include "ChemicalOutFlowBC.h"
34 
35 #include "LangmuirMaterial.h"
37 
38 template <>
39 InputParameters
41 {
42  InputParameters params = validParams<MooseApp>();
43  return params;
44 }
45 
46 ChemicalReactionsApp::ChemicalReactionsApp(const InputParameters & parameters)
47  : MooseApp(parameters)
48 {
49  Moose::registerObjects(_factory);
51 
52  Moose::associateSyntax(_syntax, _action_factory);
53  ChemicalReactionsApp::associateSyntax(_syntax, _action_factory);
54 }
55 
57 
58 // External entry point for dynamic application loading
59 extern "C" void
61 {
63 }
64 void
66 {
67  registerApp(ChemicalReactionsApp);
68 }
69 
70 // External entry point for dynamic object registration
71 extern "C" void
73 {
75 }
76 void
78 {
79  registerKernel(PrimaryTimeDerivative);
80  registerKernel(PrimaryConvection);
81  registerKernel(PrimaryDiffusion);
82  registerKernel(CoupledBEEquilibriumSub);
83  registerKernel(CoupledConvectionReactionSub);
84  registerKernel(CoupledDiffusionReactionSub);
85  registerKernel(CoupledBEKinetic);
86  registerKernel(DesorptionFromMatrix);
87  registerKernel(DesorptionToPorespace);
88  registerKernel(DarcyFluxPressure);
89 
90  registerAux(AqueousEquilibriumRxnAux);
91  registerAux(KineticDisPreConcAux);
92  registerAux(KineticDisPreRateAux);
93 
94  registerBoundaryCondition(ChemicalOutFlowBC);
95 
96  registerMaterial(LangmuirMaterial);
97  registerMaterial(MollifiedLangmuirMaterial);
98 }
99 
100 // External entry point for dynamic syntax association
101 extern "C" void
102 ChemicalReactionsApp__associateSyntax(Syntax & syntax, ActionFactory & action_factory)
103 {
104  ChemicalReactionsApp::associateSyntax(syntax, action_factory);
105 }
106 void
107 ChemicalReactionsApp::associateSyntax(Syntax & syntax, ActionFactory & action_factory)
108 {
109  registerSyntax("AddPrimarySpeciesAction", "ReactionNetwork");
110  registerSyntax("AddSecondarySpeciesAction", "ReactionNetwork/AqueousEquilibriumReactions");
111  registerSyntax("AddSecondarySpeciesAction", "ReactionNetwork/SolidKineticReactions");
112  registerSyntax("AddCoupledEqSpeciesAction", "ReactionNetwork/AqueousEquilibriumReactions");
113  registerSyntax("AddCoupledSolidKinSpeciesAction", "ReactionNetwork/SolidKineticReactions");
114  registerAction(AddPrimarySpeciesAction, "add_variable");
115  registerAction(AddSecondarySpeciesAction, "add_aux_variable");
116  registerAction(AddCoupledEqSpeciesAction, "add_kernel");
117  registerAction(AddCoupledEqSpeciesAction, "add_aux_kernel");
118  registerAction(AddCoupledSolidKinSpeciesAction, "add_kernel");
119  registerAction(AddCoupledSolidKinSpeciesAction, "add_aux_kernel");
120 }
Implements a simple constant VectorNeumann BC where grad(u)=value on the boundary.
Darcy flux: - cond * (Grad P - rho * g) where cond is the hydraulic conductivity, P is fluid pressure...
Define the Kernel for a CoupledBEKinetic operator that looks like: delta (weight * v) / delta t...
Calculate the kinetic mineral species kinetic rate according to transient state theory rate law...
Mass flow rate of adsorbed fluid from matrix Add this to TimeDerivative to form the entire DE for des...
Define the Kernel for a CoupledBEEquilibriumSub operator that looks like: grad (diff * grad (weight *...
Mass flow rate of fluid to the porespace from the matrix Add this to the DE for the porepressure vari...
Define the Kernel for a CoupledConvectionReactionSub operator that looks like: grad (diff * grad_u) ...
Define the Kernel for a CoupledConvectionReactionSub operator that looks like: weight * velocity * 10...
Calculate the kinetic mineral species concentrations according to transient state theory rate law...
static void registerObjects(Factory &factory)
InputParameters validParams< ChemicalReactionsApp >()
void ChemicalReactionsApp__registerObjects(Factory &factory)
void ChemicalReactionsApp__registerApps()
Define the AuxKernel for the output of equilibrium species concentrations according to mass action la...
void ChemicalReactionsApp__associateSyntax(Syntax &syntax, ActionFactory &action_factory)
static void associateSyntax(Syntax &syntax, ActionFactory &action_factory)
Holds Langmuir parameters associated with desorption Calculates mass-flow rates and derivatives there...
Define the Kernel for a PrimaryConvection operator that looks like: cond * grad_pressure * grad_u...
Define the Kernel for a CoupledConvectionReactionSub operator that looks like: storage * delta pressu...
ChemicalReactionsApp(const InputParameters &parameters)
Define the Kernel for a CoupledBEEquilibriumSub operator that looks like: delta (weight * 10^log_k * ...
Holds Langmuir parameters associated with desorption Calculates mass-flow rates and derivatives there...