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 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<TimeDerivative>();
19  params.addRequiredParam<std::vector<Real>>("weight",
20  "The weight of kinetic species concentration");
21  params.addCoupledVar("v", "List of kinetic species being coupled by concentration");
22  params.addClassDescription("Derivative of kinetic species concentration wrt time");
23  return params;
24 }
25 
26 CoupledBEKinetic::CoupledBEKinetic(const InputParameters & parameters)
27  : TimeDerivative(parameters),
28  _porosity(getMaterialProperty<Real>("porosity")),
29  _weight(getParam<std::vector<Real>>("weight"))
30 {
31  const unsigned int n = coupledComponents("v");
32  _vals.resize(n);
33  _vals_old.resize(n);
34 
35  for (unsigned int i = 0; i < n; ++i)
36  {
37  _vals[i] = &coupledValue("v", i);
38  _vals_old[i] = &coupledValueOld("v", i);
39  }
40 }
41 
42 Real
44 {
45  Real assemble_conc = 0.0;
46 
47  for (MooseIndex(_vals) i = 0; i < _vals.size(); ++i)
48  assemble_conc += _weight[i] * ((*_vals[i])[_qp] - (*_vals_old[i])[_qp]) / _dt;
49 
50  return _porosity[_qp] * _test[_i][_qp] * assemble_conc;
51 }
CoupledBEKinetic::computeQpResidual
virtual Real computeQpResidual() override
Definition: CoupledBEKinetic.C:43
CoupledBEKinetic::_weight
const std::vector< Real > _weight
Weight of the kinetic mineral concentration in the total primary species concentration.
Definition: CoupledBEKinetic.h:34
CoupledBEKinetic.h
validParams< CoupledBEKinetic >
InputParameters validParams< CoupledBEKinetic >()
Definition: CoupledBEKinetic.C:16
CoupledBEKinetic::CoupledBEKinetic
CoupledBEKinetic(const InputParameters &parameters)
Definition: CoupledBEKinetic.C:26
registerMooseObject
registerMooseObject("ChemicalReactionsApp", CoupledBEKinetic)
CoupledBEKinetic::_vals
std::vector< const VariableValue * > _vals
Coupled kinetic mineral concentrations.
Definition: CoupledBEKinetic.h:36
CoupledBEKinetic::_porosity
const MaterialProperty< Real > & _porosity
Porosity.
Definition: CoupledBEKinetic.h:32
CoupledBEKinetic
Derivative of mineral species concentration wrt time.
Definition: CoupledBEKinetic.h:22
CoupledBEKinetic::_vals_old
std::vector< const VariableValue * > _vals_old
Coupled old values of kinetic mineral concentrations.
Definition: CoupledBEKinetic.h:38