www.mooseframework.org
PorousFlowDispersiveFlux.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 "Kernel.h"
13 #include "PorousFlowDictator.h"
14 #include "RankTwoTensor.h"
15 
21 {
22 public:
24 
26 
27 protected:
28  virtual Real computeQpResidual() override;
29 
30  virtual Real computeQpJacobian() override;
31 
32  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
33 
41  Real computeQpJac(unsigned int jvar) const;
42 
45 
48 
51 
54 
57 
60 
63 
66 
69 
72 
75 
77  const unsigned int _fluid_component;
78 
80  const unsigned int _num_phases;
81 
84 
87 
90 
93 
96 
99 
102 
105 
108 
111 
114 
117 
119  const std::vector<Real> _disp_long;
120 
122  const std::vector<Real> _disp_trans;
123 
125  const bool _perm_derivs;
126 };
const MaterialProperty< std::vector< std::vector< Real > > > & _dtortuosity_dvar
Derivative of tortuosity wrt PorousFlow variables.
const RankTwoTensor _identity_tensor
Identity tensor.
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
virtual Real computeQpJacobian() override
const MaterialProperty< std::vector< Real > > & _tortuosity
Tortuosity tau_0 * tau_{alpha} for fluid phase alpha.
const MaterialProperty< std::vector< RealTensorValue > > & _dpermeability_dvar
Derivative of permeability wrt PorousFlow variables.
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _dgrad_p_dvar
Derivative of Grad porepressure in each phase wrt PorousFlow variables.
const RealVectorValue _gravity
Gravitational acceleration.
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
Fluid density for each phase (at the qp)
const MaterialProperty< std::vector< std::vector< Real > > > & _diffusion_coeff
Diffusion coefficients of component k in fluid phase alpha.
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _grad_mass_frac
Gradient of mass fraction of each component in each phase.
const MaterialProperty< std::vector< Real > > & _fluid_viscosity
Viscosity of each component in each phase.
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dpermeability_dgradvar
d(permeabiity)/d(grad(PorousFlow variable))
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_viscosity_dvar
Derivative of viscosity wrt PorousFlow variables.
const unsigned int _num_phases
The number of fluid phases.
virtual Real computeQpResidual() override
const MaterialProperty< std::vector< Real > > & _dporosity_qp_dvar
Derivative of porosity wrt PorousFlow variables (at the qps)
Real computeQpJac(unsigned int jvar) const
Derivative of the residual with respect to the PorousFLow Variable with variable number jvar...
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
PorousFlowDispersiveFlux(const InputParameters &parameters)
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.
const std::vector< Real > _disp_long
Longitudinal dispersivity for each phase.
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_qp_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp) ...
const MaterialProperty< std::vector< Real > > & _relative_permeability
Relative permeability of each phase.
static InputParameters validParams()
Dispersive flux of component k in fluid phase alpha.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
const MaterialProperty< std::vector< std::vector< Real > > > & _drelative_permeability_dvar
Derivative of relative permeability wrt PorousFlow variables.
const bool _perm_derivs
Flag to check whether permeabiity derivatives are non-zero.
const InputParameters & parameters() const
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _ddiffusion_coeff_dvar
Derivative of the diffusion coefficients wrt PorousFlow variables.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const unsigned int _fluid_component
Index of the fluid component that this kernel acts on.
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
Derivative of mass fraction wrt PorousFlow variables.
const MaterialProperty< std::vector< std::vector< Real > > > & _dgrad_p_dgrad_var
Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)
const MaterialProperty< Real > & _porosity_qp
Porosity at the qps.
const std::vector< Real > _disp_trans
Transverse dispersivity for each phase.