www.mooseframework.org
RichardsFlux.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 "RichardsVarNames.h"
14 
15 // Forward Declarations
16 class RichardsFlux;
17 
18 template <>
19 InputParameters validParams<RichardsFlux>();
20 
25 class RichardsFlux : public Kernel
26 {
27 public:
28  RichardsFlux(const InputParameters & parameters);
29 
30 protected:
31  virtual Real computeQpResidual();
32 
33  virtual Real computeQpJacobian();
34 
35  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
36 
42 
50  unsigned int _pvar;
51 
53  const MaterialProperty<std::vector<RealVectorValue>> & _flux;
54 
56  const MaterialProperty<std::vector<std::vector<RealVectorValue>>> & _dflux_dv;
57 
59  const MaterialProperty<std::vector<std::vector<RealTensorValue>>> & _dflux_dgradv;
60 
62  const MaterialProperty<std::vector<std::vector<std::vector<RealVectorValue>>>> & _d2flux_dvdv;
63 
65  const MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue>>>> & _d2flux_dgradvdv;
66 
68  const MaterialProperty<std::vector<std::vector<std::vector<RealTensorValue>>>> & _d2flux_dvdgradv;
69 
71  const VariableSecond & _second_u;
72 
74  const VariablePhiSecond & _second_phi;
75 
77  const MaterialProperty<std::vector<RealVectorValue>> & _tauvel_SUPG;
78 
80  const MaterialProperty<std::vector<std::vector<RealTensorValue>>> & _dtauvel_SUPG_dgradv;
81 
83  const MaterialProperty<std::vector<std::vector<RealVectorValue>>> & _dtauvel_SUPG_dv;
84 
91  Real computeQpJac(unsigned int wrt_num);
92 };
RichardsFlux::_tauvel_SUPG
const MaterialProperty< std::vector< RealVectorValue > > & _tauvel_SUPG
SUPGtau*SUPGvel (a vector of these if multiphase)
Definition: RichardsFlux.h:77
RichardsFlux::_dflux_dgradv
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dflux_dgradv
d(Richards flux_i)/d(grad(variable_j)), here flux_i is the i_th flux, which is itself a RealVectorVal...
Definition: RichardsFlux.h:59
RichardsFlux
Kernel = grad(permeability*relativepermeability/viscosity * (grad(pressure) - density*gravity)) This ...
Definition: RichardsFlux.h:25
RichardsFlux::_dtauvel_SUPG_dv
const MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dtauvel_SUPG_dv
derivative of SUPGtau*SUPGvel_i wrt variable_j
Definition: RichardsFlux.h:83
RichardsFlux::_d2flux_dgradvdv
const MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dgradvdv
d^2(Richards flux_i)/d(grad(variable_j))/d(variable_k), here flux_i is the i_th flux,...
Definition: RichardsFlux.h:65
RichardsFlux::_d2flux_dvdgradv
const MaterialProperty< std::vector< std::vector< std::vector< RealTensorValue > > > > & _d2flux_dvdgradv
d^2(Richards flux_i)/d(variable_j)/d(grad(variable_k)), here flux_i is the i_th flux,...
Definition: RichardsFlux.h:68
RichardsFlux::computeQpResidual
virtual Real computeQpResidual()
Definition: RichardsFlux.C:65
validParams< RichardsFlux >
InputParameters validParams< RichardsFlux >()
Definition: RichardsFlux.C:23
RichardsFlux::_d2flux_dvdv
const MaterialProperty< std::vector< std::vector< std::vector< RealVectorValue > > > > & _d2flux_dvdv
d^2(Richards flux_i)/d(variable_j)/d(variable_k), here flux_i is the i_th flux, which is itself a Rea...
Definition: RichardsFlux.h:62
RichardsVarNames
This holds maps between pressure_var or pressure_var, sat_var used in RichardsMaterial and kernels,...
Definition: RichardsVarNames.h:25
RichardsFlux::_richards_name_UO
const RichardsVarNames & _richards_name_UO
holds info regarding the names of the Richards variables and methods for extracting values of these v...
Definition: RichardsFlux.h:41
RichardsFlux::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: RichardsFlux.C:126
RichardsVarNames.h
RichardsFlux::_dtauvel_SUPG_dgradv
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dtauvel_SUPG_dgradv
derivative of SUPGtau*SUPGvel_i wrt grad(variable_j)
Definition: RichardsFlux.h:80
RichardsFlux::RichardsFlux
RichardsFlux(const InputParameters &parameters)
Definition: RichardsFlux.C:35
RichardsFlux::_second_phi
const VariablePhiSecond & _second_phi
interpolation function for the _second_u
Definition: RichardsFlux.h:74
RichardsFlux::computeQpJac
Real computeQpJac(unsigned int wrt_num)
Computes diagonal and off-diagonal jacobian entries.
Definition: RichardsFlux.C:87
RichardsFlux::_second_u
const VariableSecond & _second_u
grad_i grad_j porepressure. This is used in SUPG
Definition: RichardsFlux.h:71
RichardsFlux::_dflux_dv
const MaterialProperty< std::vector< std::vector< RealVectorValue > > > & _dflux_dv
d(Richards flux_i)/d(variable_j), here flux_i is the i_th flux, which is itself a RealVectorValue
Definition: RichardsFlux.h:56
RichardsFlux::_flux
const MaterialProperty< std::vector< RealVectorValue > > & _flux
Richards flux.
Definition: RichardsFlux.h:53
RichardsFlux::_pvar
unsigned int _pvar
the index of this variable in the list of Richards variables held by _richards_name_UO.
Definition: RichardsFlux.h:50
RichardsFlux::computeQpJacobian
virtual Real computeQpJacobian()
Definition: RichardsFlux.C:120