www.mooseframework.org
PorousFlowPreDis.h
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 #pragma once
11 
12 #include "TimeDerivative.h"
13 #include "PorousFlowDictator.h"
14 
15 class PorousFlowPreDis;
16 
17 template <>
18 InputParameters validParams<PorousFlowPreDis>();
19 
25 class PorousFlowPreDis : public TimeKernel
26 {
27 public:
28  PorousFlowPreDis(const InputParameters & parameters);
29 
30 protected:
31  virtual Real computeQpResidual() override;
32  virtual Real computeQpJacobian() override;
33  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
34 
36  const std::vector<Real> _mineral_density;
37 
40 
42  const unsigned int _aq_ph;
43 
45  const MaterialProperty<Real> & _porosity_old;
46 
48  const MaterialProperty<std::vector<Real>> & _saturation;
49 
51  const MaterialProperty<std::vector<std::vector<Real>>> & _dsaturation_dvar;
52 
54  const MaterialProperty<std::vector<Real>> & _reaction_rate;
55 
57  const MaterialProperty<std::vector<std::vector<Real>>> & _dreaction_rate_dvar;
58 
60  const std::vector<Real> _stoichiometry;
61 
67  Real computeQpJac(unsigned int pvar);
68 };
69 
PorousFlowPreDis
Kernel = sum (stoichiometry * density * porosity_old * saturation * reaction_rate) where the sum is o...
Definition: PorousFlowPreDis.h:25
PorousFlowDictator.h
PorousFlowPreDis::_reaction_rate
const MaterialProperty< std::vector< Real > > & _reaction_rate
Reaction rate of the yielding the secondary species.
Definition: PorousFlowPreDis.h:54
PorousFlowPreDis::_dreaction_rate_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dreaction_rate_dvar
d(reaction rate)/d(porflow variable)
Definition: PorousFlowPreDis.h:57
PorousFlowPreDis::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowPreDis.C:74
validParams< PorousFlowPreDis >
InputParameters validParams< PorousFlowPreDis >()
Definition: PorousFlowPreDis.C:16
PorousFlowPreDis::_stoichiometry
const std::vector< Real > _stoichiometry
Stoichiometric coefficients.
Definition: PorousFlowPreDis.h:60
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowPreDis::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowPreDis.C:103
PorousFlowPreDis::_saturation
const MaterialProperty< std::vector< Real > > & _saturation
Saturation.
Definition: PorousFlowPreDis.h:48
PorousFlowPreDis::_mineral_density
const std::vector< Real > _mineral_density
Density of the mineral species.
Definition: PorousFlowPreDis.h:36
PorousFlowPreDis::PorousFlowPreDis
PorousFlowPreDis(const InputParameters &parameters)
Definition: PorousFlowPreDis.C:34
PorousFlowPreDis::_porosity_old
const MaterialProperty< Real > & _porosity_old
Old value of porosity.
Definition: PorousFlowPreDis.h:45
PorousFlowPreDis::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowPreDis.C:94
PorousFlowPreDis::computeQpJac
Real computeQpJac(unsigned int pvar)
Derivative of residual with respect to PorousFlow variable number pvar This is used by both computeQp...
Definition: PorousFlowPreDis.C:112
PorousFlowPreDis::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowPreDis.h:39
PorousFlowPreDis::_aq_ph
const unsigned int _aq_ph
Aqueous phase number.
Definition: PorousFlowPreDis.h:42
PorousFlowPreDis::_dsaturation_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dsaturation_dvar
d(saturation)/d(PorousFlow var)
Definition: PorousFlowPreDis.h:51