https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowMassVolumetricExpansion.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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#include "RankTwoTensor.h"
15
24{
25public:
27
29
30protected:
31 virtual Real computeQpResidual() override;
32 virtual Real computeQpJacobian() override;
33 virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
34
36 const unsigned int _fluid_component;
37
40
43
45 unsigned int _ndisp;
46
48 std::vector<unsigned int> _disp_var_num;
49
51 const unsigned int _num_phases;
52
55
58
61
64
67
70
73
76
79
82
85
88
91
94
101 Real computedMassQpJac(unsigned int jvar) const;
102
110 Real computedVolQpJac(unsigned int jvar) const;
111};
const InputParameters & parameters() const
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
Kernel = mass_component * d(volumetric_strain)/dt where mass_component = porosity*sum_phases(density_...
const MaterialProperty< std::vector< Real > > & _fluid_saturation
Fluid saturation.
const MaterialProperty< std::vector< Real > > & _dporosity_dvar
d(porosity)/d(PorousFlow variable)
const bool _multiply_by_density
Whether to multiply by density: if true then this Kernel involves the fluid mass, otherwise it involv...
const MaterialProperty< unsigned int > *const _nearest_qp
The nearest qp to the node.
const unsigned int _fluid_component
The fluid component index.
Real computedVolQpJac(unsigned int jvar) const
Derivative of volumetric-strain part of the residual with respect to the Variable with variable numbe...
const MaterialProperty< std::vector< std::vector< Real > > > & _mass_frac
Mass fraction.
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_saturation_dvar
d(fluid saturation)/d(PorousFlow variable)
Real computedMassQpJac(unsigned int jvar) const
Derivative of mass part of the residual with respect to the Variable with variable number jvar.
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
const unsigned int _num_phases
Number of fluid phases.
const bool _strain_at_nearest_qp
Whether the porosity uses the volumetric strain at the closest quadpoint.
const MaterialProperty< std::vector< RealGradient > > & _dstrain_rate_qp_dvar
d(strain rate)/d(PorousFlow variable)
const MaterialProperty< Real > & _porosity
Porosity.
const MaterialProperty< std::vector< RealGradient > > & _dporosity_dgradvar
d(porosity)/d(grad PorousFlow variable)
const bool _var_is_porflow_var
Whether the Variable for this Kernel is a PorousFlow variable according to the Dictator.
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
const MaterialProperty< Real > & _strain_rate_qp
Strain rate.
unsigned int _ndisp
Number of displacement variables.
std::vector< unsigned int > _disp_var_num
Variable number of the displacements variables.
const MaterialProperty< std::vector< Real > > *const _fluid_density
Fluid density.
const MaterialProperty< std::vector< std::vector< Real > > > *const _dfluid_density_dvar
d(fluid density)/d(PorousFlow variable)
const MaterialProperty< std::vector< std::vector< std::vector< Real > > > > & _dmass_frac_dvar
d(mass fraction)/d(PorousFlow variable)