www.mooseframework.org
CoupledBEKinetic.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "CoupledBEKinetic.h"
11 
12 registerMooseObject("ChemicalReactionsApp", CoupledBEKinetic);
13 
16 {
18  params.addRequiredParam<std::vector<Real>>("weight",
19  "The weight of kinetic species concentration");
20  params.addCoupledVar("v", "List of kinetic species being coupled by concentration");
21  params.addClassDescription("Derivative of kinetic species concentration wrt time");
22  return params;
23 }
24 
26  : TimeDerivative(parameters),
27  _porosity(getMaterialProperty<Real>("porosity")),
28  _weight(getParam<std::vector<Real>>("weight")),
29  _vals(coupledValues("v")),
30  _vals_old(coupledValuesOld("v"))
31 {
32 }
33 
34 Real
36 {
37  Real assemble_conc = 0.0;
38 
39  for (MooseIndex(_vals) i = 0; i < _vals.size(); ++i)
40  assemble_conc += _weight[i] * ((*_vals[i])[_qp] - (*_vals_old[i])[_qp]) / _dt;
41 
42  return _porosity[_qp] * _test[_i][_qp] * assemble_conc;
43 }
CoupledBEKinetic(const InputParameters &parameters)
Derivative of mineral species concentration wrt time.
const std::vector< const VariableValue * > _vals
Coupled kinetic mineral concentrations.
static InputParameters validParams()
void addRequiredParam(const std::string &name, const std::string &doc_string)
const std::vector< const VariableValue * > _vals_old
Coupled old values of kinetic mineral concentrations.
virtual Real computeQpResidual() override
const VariableTestValue & _test
registerMooseObject("ChemicalReactionsApp", CoupledBEKinetic)
unsigned int _i
void addCoupledVar(const std::string &name, const std::string &doc_string)
const std::vector< Real > _weight
Weight of the kinetic mineral concentration in the total primary species concentration.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _porosity
Porosity.
void addClassDescription(const std::string &doc_string)
unsigned int _qp
static InputParameters validParams()