www.mooseframework.org
PorousFlowFullySaturatedMassTimeDerivative.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 "TimeKernel.h"
13 #include "PorousFlowDictator.h"
14 
16 
17 template <>
19 
26 {
27 public:
28  PorousFlowFullySaturatedMassTimeDerivative(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  Real computeQpJac(unsigned int pvar);
37 
40 
42  const bool _var_is_porflow_var;
43 
46 
48  const enum class CouplingTypeEnum {
49  Hydro,
54 
56  const bool _includes_thermal;
57 
60 
62  const Real _biot_coefficient;
63 
65  const MaterialProperty<Real> & _biot_modulus;
66 
68  const MaterialProperty<Real> * const _thermal_coeff;
69 
71  const MaterialProperty<std::vector<Real>> * const _fluid_density;
72 
74  const MaterialProperty<std::vector<std::vector<Real>>> * const _dfluid_density_dvar;
75 
77  const MaterialProperty<std::vector<Real>> & _pp;
78 
80  const MaterialProperty<std::vector<Real>> & _pp_old;
81 
83  const MaterialProperty<std::vector<std::vector<Real>>> & _dpp_dvar;
84 
86  const MaterialProperty<Real> * const _temperature;
87 
89  const MaterialProperty<Real> * const _temperature_old;
90 
92  const MaterialProperty<std::vector<Real>> * const _dtemperature_dvar;
93 
95  const MaterialProperty<Real> * const _strain_rate;
96 
98  const MaterialProperty<std::vector<RealGradient>> * const _dstrain_rate_dvar;
99 };
100 
PorousFlowDictator.h
PorousFlowFullySaturatedMassTimeDerivative::PorousFlowFullySaturatedMassTimeDerivative
PorousFlowFullySaturatedMassTimeDerivative(const InputParameters &parameters)
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:42
PorousFlowFullySaturatedMassTimeDerivative::_pp_old
const MaterialProperty< std::vector< Real > > & _pp_old
Old value of quadpoint pore pressure in each phase.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:80
PorousFlowFullySaturatedMassTimeDerivative::_includes_thermal
const bool _includes_thermal
Whether thermal contributions should be added to the residual.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:56
PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum::ThermoHydro
PorousFlowFullySaturatedMassTimeDerivative::_temperature_old
const MaterialProperty< Real > *const _temperature_old
Old value of quadpoint temperature.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:89
PorousFlowFullySaturatedMassTimeDerivative::_strain_rate
const MaterialProperty< Real > *const _strain_rate
Strain rate.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:95
PorousFlowFullySaturatedMassTimeDerivative::_pp
const MaterialProperty< std::vector< Real > > & _pp
Quadpoint pore pressure in each phase.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:77
PorousFlowFullySaturatedMassTimeDerivative::_dfluid_density_dvar
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_dvar
derivative of fluid density for each phase with respect to the PorousFlow variables
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:74
PorousFlowFullySaturatedMassTimeDerivative::_includes_mechanical
const bool _includes_mechanical
Whether mechanical contributions should be added to the residual.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:59
PorousFlowFullySaturatedMassTimeDerivative::_thermal_coeff
const MaterialProperty< Real > *const _thermal_coeff
Constant volumetric thermal expansion coefficient.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:68
validParams< PorousFlowFullySaturatedMassTimeDerivative >
InputParameters validParams< PorousFlowFullySaturatedMassTimeDerivative >()
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:18
PorousFlowFullySaturatedMassTimeDerivative::_biot_modulus
const MaterialProperty< Real > & _biot_modulus
Constant Biot modulus.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:65
PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum::Hydro
PorousFlowFullySaturatedMassTimeDerivative::_dtemperature_dvar
const MaterialProperty< std::vector< Real > > *const _dtemperature_dvar
Derivative of temperature wrt the PorousFlow variables.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:92
PorousFlowFullySaturatedMassTimeDerivative::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:105
PorousFlowFullySaturatedMassTimeDerivative::_coupling_type
enum PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum _coupling_type
PorousFlowFullySaturatedMassTimeDerivative::_dpp_dvar
const MaterialProperty< std::vector< std::vector< Real > > > & _dpp_dvar
Derivative of porepressure in each phase wrt the PorousFlow variables.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:83
PorousFlowDictator
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Definition: PorousFlowDictator.h:71
PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum
CouplingTypeEnum
Determines whether mechanical and/or thermal contributions should be added to the residual.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:48
PorousFlowFullySaturatedMassTimeDerivative::computeQpJac
Real computeQpJac(unsigned int pvar)
Jacobian contribution for the PorousFlow variable pvar.
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:123
PorousFlowFullySaturatedMassTimeDerivative
Time derivative of fluid mass suitable for fully-saturated, single-phase, single-component simulation...
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:25
PorousFlowFullySaturatedMassTimeDerivative::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:91
PorousFlowFullySaturatedMassTimeDerivative::_var_is_porflow_var
const bool _var_is_porflow_var
Whether the Variable for this Kernel is a PorousFlow variable.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:42
PorousFlowFullySaturatedMassTimeDerivative::_dstrain_rate_dvar
const MaterialProperty< std::vector< RealGradient > > *const _dstrain_rate_dvar
Derivative of strain rate wrt the PorousFlow variables.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:98
PorousFlowFullySaturatedMassTimeDerivative::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowFullySaturatedMassTimeDerivative.C:114
PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum::ThermoHydroMechanical
PorousFlowFullySaturatedMassTimeDerivative::_dictator
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:39
PorousFlowFullySaturatedMassTimeDerivative::_multiply_by_density
const bool _multiply_by_density
If true then the Kernel is the time derivative of the fluid mass, otherwise it is the derivative of t...
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:45
PorousFlowFullySaturatedMassTimeDerivative::_biot_coefficient
const Real _biot_coefficient
Biot coefficient (used in simulations involving Mechanical deformations)
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:62
PorousFlowFullySaturatedMassTimeDerivative::_fluid_density
const MaterialProperty< std::vector< Real > > *const _fluid_density
Quadpoint fluid density for each phase.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:71
PorousFlowFullySaturatedMassTimeDerivative::_temperature
const MaterialProperty< Real > *const _temperature
Quadpoint temperature.
Definition: PorousFlowFullySaturatedMassTimeDerivative.h:86
PorousFlowFullySaturatedMassTimeDerivative::CouplingTypeEnum::HydroMechanical